在秋千上清洁窗户

时间:2015-08-12 07:47:09

标签: java swing jtable jradiobutton

我创建了一组jRadioButton

每个按钮都有一个动作监听器,可以在单独的窗口中创建JTable

我希望当我按下另一个按钮时,框架将被清理,然后另一个JTable将被执行,

ButtonGroup group = new ButtonGroup();
JRadioButton[] jRadioButton = new JRadioButton[5];
for (int i = 0; i < 5; i++) {
    jRadioButton[i] = new JRadioButton("machine "+i);
    jRadioButton[i].setBounds(x, y, width, height);// x, y, width, height are place parameters
    group.add(jRadioButton[i]);
    frame.getContentPane().add(jRadioButton[i]);
    frame.update(frame.getGraphics());//update the frame and add the buttons
}

让我们说,我按了machine 1并在另一个窗口弹出一个表格,现在当我按下machine 2时会弹出一个不同的表格我要清除新窗口在显示第二个表之前。

所以我的问题是,是否可以清理一个窗口,如果是,如何?

2 个答案:

答案 0 :(得分:2)

如果唯一的区别是JTable,您只需使用> .load './librank' 更改表格的模型。

如果您有更多控件,您可以使用CardLayout交换面板(对于每个JRadioButton实例,您可以创建一个面板并交换它们)

OR

使用容器的removeAll()方法删除所有控件,添加新控件并调用

theTable.setModel(properJRadioButtonDependentModel)

答案 1 :(得分:0)

表格创建

public void createMachineTable(int row) {
    model = new DefaultTableModel(col, row);
    table = new JTable(model) {
        /**
         * 
         */
        @Override
        public boolean isCellEditable(int rows, int columns) {
            if (columns == 0)
                return false;//left side uneditable
            else
                return true;//right side editable
        }
    };
    pane = new JScrollPane(table);// the new window of te table
    getContentPane().add(pane);
    setVisible(true);
    setSize(500, 600);
    getContentPane().setLayout(new FlowLayout());
    setDefaultCloseOperation(1);

}

现在,按下其他按钮时,将应用以下级别

pane.getViewport().remove( table );
createMachineTable(rowsNumer);

该表将被删除,并将创建一个新表。