0

このコードを使用して を追加してJComboboxJTableますが、このコードを実行すると、コンボボックスが追加されず、Jtableヘッダーのみが に表示されますJtable

Private JTable ScrollPaneTable;

public JTable getScrollPaneTable()
    {
        if(ScrollPaneTable == null)
        {
            try
            {
                ScrollPaneTable = new JTable();
                ScrollPaneTable.setName("ScrollPaneTable");
                getJScrollPane1().setColumnHeaderView(ScrollPaneTable.getTableHeader());
                TableColumn sportColumn = ivjScrollPaneTable.getColumnModel().getColumn(0);
                sportColumn.setCellEditor(new DefaultCellEditor(getCombo1())); //getCombo1                      
                            returns the JCombo box reference whose items are already added.
                ScrollPaneTable.setBounds(0, 0, 200, 200);
            }
            catch(Throwable Exc)
            {
                handleException(Exc);
            }
        }
        return ScrollPaneTable;
    }

ここではコンボを 1 つだけ追加していますが、他の列で使用したいコンボがさらにあります。

4

1 に答える 1

1

SSCCEを投稿してください。これは私にとってはうまくいきます。

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.TableColumn;

public class TestJComboBox {

    public static void main(String args[]) {

        JFrame frame = new JFrame("Example of JCombobox in JTable");
        frame.setSize(450, 250);

        JTable table = new JTable(5,5);

        TableColumn testColumn = table.getColumnModel().getColumn(0);

        JComboBox comboBox = new JComboBox();
        comboBox.addItem("This");
        comboBox.addItem("is");
        comboBox.addItem("a");
        comboBox.addItem("Sample program");
        comboBox.addItem("for");
        comboBox.addItem("StackOverflow");
        testColumn.setCellEditor(new DefaultCellEditor(comboBox));

        frame.add(table);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        frame.setVisible(true);
    }
}
于 2012-05-07T08:08:45.630 に答える