java JTable和JComboBox将JTable保存在文本文件上并加载值
我有一个只有一列的JTable
,这个列中有JComboBox
项。
我找到了一种将我的JTable
中的所有值保存到txt文件的方法
我还找到了从txt文件加载值的方法,下面是代码:
private JTable table = createMyTable ();
private void loadTable(File file) {
String line;
BufferedReader reader;
String ColumnName = "ComboBox values";
reader = new BufferedReader(new FileReader(file));
int i = 0;
while((line = reader.readLine()) != null)
{
JComboBox comboBox = createComboBox();
tabel.getColumnModel().getColumn(2).setCellEditor(
new DefaultCellEditor(comboBox));
String string_Col = line.trim();
if ( !index.isEmpty() )
comboBox.setSelectedIndex(index);
i++;
}
reader.close();
}
private JComboBox createComboBox () {
int array [] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
JComboBox comboBox = new JComboBox();
for (int value : array)
comboBox.addItem(value);
return comboBox;
}
文本文件是一个简单的文件,每行都有数字,如下所示:
34
23
2
43
12
我想还原这些值并将它们放在我的JTable
中的JComboBox
行中
问题是,我的解决方案不太适合还原这些值,因为JComboBox
值刚刚写入JTable
单元格,所以当我单击一行时,相对的JComboBox
组件立即聚焦并选择列表的第一项,而我以前还原的值丢失。我不理解这种行为
那么,有没有一种好方法可以从文件中获取这些文件,并以正确的方式将它们放在JTable
的JComboBox
组件中,以保证正常的JComboBox
行为,也就是说,当我单击JComboBox
组件时,焦点必须保持在先前选择的索引上
谢谢
编辑:
我编辑了我的代码,loadTable()
是我用来从txt文件中获取JComboBox
值的函数,我使用combo.setSelectedIndex(index);
来做我需要的事情,但它不起作用,而且似乎不起作用,因为JComboBox
是用tabel.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(comboBox));
插入JTable
的,所以这可能有问题
实际上,我试图在我的loadTable()
函数的末尾添加一些调试代码,我只是试图从JTable
中添加JComboBox
,猜猜怎么着?它工作了,JComboBox
现在将所选项目显示在右侧索引中。相反,当它位于JTable
内时,它不会
我怎样才能解决这个问题
共 (0) 个答案