我创建了一组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
时会弹出一个不同的表格我要清除新窗口在显示第二个表之前。
所以我的问题是,是否可以清理一个窗口,如果是,如何?
答案 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);
该表将被删除,并将创建一个新表。