有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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组件立即聚焦并选择列表的第一项,而我以前还原的值丢失。我不理解这种行为

那么,有没有一种好方法可以从文件中获取这些文件,并以正确的方式将它们放在JTableJComboBox组件中,以保证正常的JComboBox行为,也就是说,当我单击JComboBox组件时,焦点必须保持在先前选择的索引上

谢谢

编辑:

我编辑了我的代码,loadTable()是我用来从txt文件中获取JComboBox值的函数,我使用combo.setSelectedIndex(index);来做我需要的事情,但它不起作用,而且似乎不起作用,因为JComboBox是用tabel.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(comboBox));插入JTable的,所以这可能有问题

实际上,我试图在我的loadTable()函数的末尾添加一些调试代码,我只是试图从JTable中添加JComboBox,猜猜怎么着?它工作了,JComboBox现在将所选项目显示在右侧索引中。相反,当它位于JTable内时,它不会

我怎样才能解决这个问题


共 (0) 个答案