jcomboboxでjtableを構成できません。さまざまなサンプルを見てきましたが、成功しませんでした。3列のテーブルと各セルのJcomboboxがあります。最初と最後のJComboboxにはスポーツがあり、中央には基準があります。
各行について、3列の値を使用して式を作成する必要があります `(Sport s1、Criteria c、Sport s2);
カスタムテーブルモデルを使用しようとしましたが、jcomboboxでは構成方法がわかりません
@Override
public Object getValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
と
public Object setValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
JComboboxの選択で値を取得および設定します。
`
このモデルを使用して、テーブルを実装します。
class MyTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
int numSports = DataSavedSports.loadNumeroSports();
private final List<Sport> objects = DataSavedSports
.loadListSports();
private final String[] columnNames = { "Name Sport 1", "Criteria",
"Name Sport 2" };
private final Class<?>[] metaModell = new Class[] { String.class,
Integer.class };
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return objects.size();
}
@Override
public String getColumnName(int col) {
return columnNames[col];
}
private Sport getRow(int row) {
return objects.get(row);
}
@Override
public Class<?> getColumnClass(int c) {
if (c < metaModell.length)
return metaModell[c];
return Object.class;
}
@Override
public boolean isCellEditable(int row, int col) {
return true;
}
public List<Sport> getJobs() {
return objects;
}
public void addRow(Sport v) {
this.objects.add(v);
fireTableDataChanged();
}
@Override
public Object getValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
}
Jcomboboxを設定するために使用したメソッドは次のようなものです
public void setColumnSports1(JTable table, TableColumn ColumnLav1) {
// Set up the editor for the sport cells.
final List<Sport> ListSports = DataSavedSports.loadListSports();
final JComboBox comboBox1 = new JComboBox();
for(Sport l : ListSports){
comboBox1.addItem(l.getIdSport());
}
comboBox1.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent ie){
String str = (String)comboBox1.getSelectedItem();
System.out.println("TESTTTT"+str);
}
});
ColumnLav1.setCellEditor(new DefaultCellEditor(comboBox1));
// Set up tool tips for the sport cells.
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setToolTipText("Click for combo box");
ColumnLav1.setCellRenderer(renderer);
}
PS
JFrameでテーブルを使用し、選択したJcomboboxアイテムのデータを取得する必要があるため、さまざまなコンポーネントがオーバーライドされるため、多重継承の欠落が別の問題になります。