Do you have to change Java Swing code generated by Eclipse VE for a correct program?

Using the Visual Editor in Eclipse I started a Swing UI containing a table (JTable) with 2 columns (JTableColumn). Adding data to the table this way:

final DefaultTableModel model = (DefaultTableModel) this.jTable.getModel();
model.addRow(new Object[] {"Column 1", "Column 2"});

generated an ArrayIndexOutOfBoundsException. I solved this by setting the number of columns of the model backing the table:

model.setColumnCount(this.jTable.getColumnCount());

But after this call, the column headers of the table I defined using the UI editor, are changed to "A" and "B". Now I'm wondering if I should go on and correct the generated code like I did, or is there a better way to build UI's with Visual Editor?

To be complete, this is the generated code to define the table and columns:

private JTable getJTable() {
    if (this.jTableSongs == null) {
        final TableColumn tableColumn1 = new TableColumn();
        tableColumn1.setHeaderValue("Header 1");
        final TableColumn tableColumn2 = new TableColumn();
        tableColumn2.setHeaderValue("Header 2");
        this.jTableSongs = new JTable();
        this.jTableSongs.addColumn(tableColumn1);
        this.jTableSongs.addColumn(tableColumn2);
    }
    return this.jTable;
}
1
задан Kwebble 25 August 2010 в 20:24
поделиться

2 ответа

или есть лучший способ создания пользовательского интерфейса с визуальным редактором?

Проблема с использованием генераторов кода заключается в том, что вы тратите больше времени на изучение IDE, а не на изучение Java. Лучшим подходом является использование IDE для отладки и т. д. и самостоятельное создание графического интерфейса, чтобы у вас был полный контроль, и код можно было перемещать из одной IDE в другую.

Я не знаю, как должен выглядеть сгенерированный код, но следующее выглядит непоследовательным:

this.jTable = new JTable(); 
this.jTableSongs.addColumn(tableColumn1); 
this.jTableSongs.addColumn(tableColumn2); 

Переменная jTable создается (и возвращается из метода), но столбцы добавляются в jTableSongs. Так что мне кажется, что jTable имеет 0 столбцов, которые могут вызвать исключение.

1
ответ дан 2 September 2019 в 21:51
поделиться

Я не знаю об этой конкретной проблеме (столбцы таблицы), но в прошлом у меня были похожие проблемы с VE.

Если у вас нет количества столбцов в представлении свойств, вы должны указать его программно, отредактировав код, но VE не удалит добавленный вручную код.

1
ответ дан 2 September 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: