左边这个JTable里面是单列数据,数据来自于重写的AbstractTableModel,而Model的数据来自于数据库。希望点击各个radiobutton可以变成不同的表,如下面两张图。
现在问题是,例如当我点击了Kinase按钮之后,再点击JTable里面的数据,这个数据就还原成了之前的数据,我想问问这个如何解决?感激不尽!
部分代码如下:
JFrame的按钮部分:
String table_title = null;
rdbtnProtein = new JRadioButton("Protein");
contentPane.add(rdbtnProtein);
rdbtnProtein.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
table1_title = "Protein";
JTable jt = new JTable();
createTable1(jt, table1_title);
}
});
rdbtnKinase的代码雷同
private void createTable1(JTable table_BioElments, String title) {
myTableModel_1 myModel_1= new myTableModel_1(title);
table_BioElments = new JTable(myModel_1);
table_BioElments.setCellSelectionEnabled(true);
contentPane.add(table_BioElments);
jsp_1 = new JScrollPane(table_BioElments);
contentPane.add(jsp_1);
}
myTableModel_1部分:
public class myTableModel_1 extends AbstractTableModel {
private Vector TableData;//用来存放表格数据的线性表
private Vector TableTitle;//表格的列标题
private HashSet sh;//储存不重复的数据
public myTableModel_1(String title){//构造函数
TableData = new Vector();
TableTitle= new Vector();
TableTitle.add(title);//设定表头,只有一个
sh = database_control.getColumn(title);//从数据库获取数据
}
public void addData(HashSet sh) {
Iterator it = sh.iterator();
while(it.hasNext()){
String[] lineData = {it.next()};
TableData.add(lineData);
}
}