3

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アイテムのデータを取得する必要があるため、さまざまなコンポーネントがオーバーライドされるため、多重継承の欠落が別の問題になります。

4

0 に答える 0