JTable和JComboBox - 在文本文件和加载值上保存JTable

时间:2013-11-16 15:20:33

标签: java swing jtable jcombobox

我的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

我想恢复这些值,并将它们放在JComboBox的{​​{1}}行中。

问题是我的解决方案不太适合恢复这些值,因为JTable值只是写入JComboBox单元格,因此当我单击一行时,相对{{1}组件立即聚焦并选择列表的第一项,并且我之前恢复的值将丢失。我不明白这种行为。

因此有一种很好的方法可以从文件中获取这些文件并以正确的方式将它们放在JTable的{​​{1}}个组件中,以保证正常的JComboBox行为也就是说,当我点击JComboBox组件时,焦点必须保留在之前选择的索引上?

由于

修改

我编辑了我的代码,JTable是我用来从txt文件中获取JComboBox值的函数,我使用JComboBox来完成我需要的操作,但它不起作用,它似乎不起作用,因为使用loadTable()JComboBox置于combo.setSelectedIndex(index);内,因此可能存在问题。

确实,我尝试在JComboBox函数的末尾添加一些调试代码,我只是尝试从JTable添加tabel.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(comboBox));,猜猜是什么?它有效,loadTable()现在将所选项目显示在右侧索引中。相反,它不在JComboBox内。

我该如何解决这个问题?

0 个答案:

没有答案