java - 通过监听器从网格面板更新组件

标签 java swing awt actionlistener

如何通过监听器从网格面板更新组件?

我有以下问题: 我以这种方式创建一个网格表

public class gui {

JPanel gridPanel = new JPanel();
JPanel background = new JPanel();
JLayeredPane layeredPanel = new JLayeredPane();
...

public gui{
...
for(int i=0; i<2; i++){
            JPanel panel= new JPanel(new BorderLayout());
            panel.setOpaque(false);
            gridPanel.add(panel);
            }


gridPanel.setOpaque(false);
layered.add(background,new Integer(1));
layered.add(gridPanel, new Integer(2));

JButton piece = new JButton( new ImageIcon("an image"));
JPanel panel = (JPanel)gridPanel.getComponent(0);
panel.add(piece);
...
}

好的,这很好用,但我想向 JButton 添加一个 Action 监听器,以允许更新 gridPanel,我想在 GUI 的构建器中添加它:

piece.addActionListener(new Listener(this));

我以这种方式创建一个新类 ActionListener:

public class Listener implements ActionListener{
private gui gui1;
public movimentoListener(gui gui1){
    gui1=gui;       
}
public void actionPerformed(ActionEvent e){
    JButton piece = new JButton( new ImageIcon("an other image"));
            JPanel panel = (JPanel)getGridPanel().getComponent(1); //obviously I've created getGridPanel
            panel.add(piece);
            gui.getGridPanel().repaint()
}
}

我希望当我按下按钮时,我的 actionPerformed 用新图像更改我的 gridPanel 的组件 1,但此代码不起作用,我尝试在网络上搜索,但没有找到解决方案。

最佳答案

关于java - 通过监听器从网格面板更新组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989757/

相关文章:

java - 为了在 java swing 中使用 setToolTipText() 方法,我应该导入什么?

java - 为什么不添加 AWTEventListener?

Java:如何将图像转换为字节[]

java - 设置传入 httpServletRequest 的 cookie 版本

java - 如何在Java Swing中的TextArea上设置滚动条?

java - 如何根据初始日期的工作计划生成截止日期?

java - 如何将多行文本添加到行未知的 JButton? (动态地)

Java swing Loader 图像无法正常显示?

java - 有没有办法启动 "empty"JVM 实例而不给它一个 Main 类来运行?

java - 是否可以用Java将JPEG文件转换为PDF文件?