JTable пусто после добавления компонентов - PullRequest
1 голос
/ 18 мая 2011

У меня проблема с JTable, я пытаюсь поместить в каждую строку JComboBoxes и JTextFields, но когда я загружаю приложение, моя таблица пуста. Функции getCmb * и getTxt * возвращают JComboBox и JTextField, и это отлично работает, я проверил.

        JTable tblCommands;
        String[] columnTitles=new String[]{"Command","Offset","Type","Value","Units","Value Type","R/W"};
        Object[][] data=new Object[20][7];
        int row=0;
        for(MessageCSVView message:messageContainer.getRows()){
            data[row][0]=message.getCmbName();//this works 
            data[row][1]=message.getCmbOffset();//this works 
            data[row][2]=message.getTxtType();//this works 
            data[row][3]=message.getTxtValue();//this works 
            data[row][4]=message.getTxtUnit();//this works 

            data[row][5]=message.getTxtValueType();//this works 
            data[row][6]=message.getCmbRW();//this works 
            row++;
        }
        tblCommands=new JTable(data,columnTitles);

Может кто-нибудь сказать мне, что я сделал не так?

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Вы неправильно понимаете, как ввод работает с JTable.

Вам нужно будет создать TableCellEditor реализации и добавить их в каждый столбец вашей таблицы.

Посмотрите учебник по Swing на JTable для получения дополнительной информации.

1 голос
/ 18 мая 2011

Пример фрагмента

public class JComboBoxCellEditor extends DefaultCellEditor {    
    JComboBox comboBox;    
    public JComboBoxCellEditor() {
        super(new JComboBox());  
        comboBox = (JComboBox) getComponent();
    }
}

Затем включите его, как показано ниже,

TableColumn column = myTable.getColumnModel().getColumn(0);
column.setCellEditor(new JComboBoxCellEditor());

Дополнительная информация:

Вот ваш лучший выбор, учебник по Swing для JTable .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...