簡體   English   中英

通過偵聽器從網格面板更新組件

[英]Update a component from a grid panel through a Listener

如何通過偵聽器從網格面板更新組件?

我有以下問題:以這種方式創建表格

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添加一個動作偵聽器,以允許更新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,但是此代碼不起作用,我嘗試在網上搜索,但沒有找到解決方案。

看一下這些線程:

CardLayout顯示下一個面板-Java Swing

Java swing動態添加組件

希望它對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM