我正在尝试在扩展AbstractTableModel
的类中创建一行,该行将包含JCombobox
。
我有一个二维数组,叫做数据。我还使用方法getColumnCount()
来实现两个按钮"上一个"one_answers"下一个"。我已经标记了我认为JCombobox
应该在哪里,但我不知道我应该如何在整行中实现。
public class SwitchTableModel extends AbstractTableModel{
@Override
public int getRowCount() {
// Standard number of rows
return 3;
}
@Override
public int getColumnCount() {
// Number of columns change according to the data
return data [position].length + 1;
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (rowIndex)
{
case 0:
return columnIndex == 0 ? "ID" : idArray [data [position][columnIndex - 1]];
case 1:
return columnIndex == 0 ? "Company Name" : company_nameArray [data [position][columnIndex - 1]];
case 2:
return columnIndex == 0 ? "Double" : ...???
default:
throw new Error ();
}
}
public void previous ()
{
position -= 1;
if (position < 0) position = data.length - 1;
fireTableStructureChanged();
}
public void next ()
{
position += 1;
if (position >= data.length) position = 0;
fireTableStructureChanged();
}
}
任何帮助都将是有价值的
在AbstractTableModel,中添加一行JCombox
-
这是错误的想法,
XxxTableModel
只保留String form
中最后一次选择(或第一次使用时初始化)的值(如果XxxComboBoxModel
包含字符串形式的Item,如果有Number,则模型只包含一个munber) -
必须将
JComboBox as Editor
和XxxTableModel
分开,那么这个想法就适用于 -
不要将
JComboBox
放在XxxTableModel
上,遵循Oracle教程中的代码示例