使用KeyListner接口的方法删除JButton

时间:2015-11-14 07:10:37

标签: java swing jbutton layout-manager grid-layout

我使用ArrayList将按钮放入JFrame, 现在我想创建一个程序,用特定的键来删除JButton。

然而,当我按下键时,框架上的按钮不会被移除, 但它来自arraylist。

要使上述功能可用,我应该更改框架代码吗? 这是我的框架部分代码

public class DataModel extends JFrame {
    JPanel _panel = new JPanel();
    Tiles _tiles;

    public DataModel(Tiles tiles) {

        this._tiles = tiles;

        setVisible(true);
        _panel.setLayout(new GridLayout(4, 1));

        for (int i = 0; i < _tiles.size(); i++) {
            _panel.add(_tiles.get(i));
        }

        add(_panel);
        pack();
    }
}

1 个答案:

答案 0 :(得分:1)

  

然而,当我按下按键时,框架上的按钮不会被移除,但它会从arraylist中删除。

从可见GUI添加/删除组件时的基本代码是:

panel.remove(...);
panel.revalidate(); // to invoke the layout manager
panel.repaint(); // repaint components after layout manager has done its job