У меня проблема с JTable использованием JDialog. Я хочу, чтобы показать свою таблицу в диалоге с этим кодом:JTable in JDialog
public class ShortcutKeys extends JDialog {
public ShortcutKeys(JFrame parent) {
super(parent);
this.setTitle("Shortcut Keys of...");
this.setLocationRelativeTo(null);
this.setModal(true);
this.setResizable(false);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.getContentPane().setLayout(new BorderLayout());
JTable shortcutKeysTable = getShortcutKeysTable();
this.add(shortcutKeysTable, BorderLayout.CENTER);
this.pack();
}
private JTable getShortcutKeysTable() {
JTable shortcutKeysTable;
Object rowData[][] = { { "1", "11" }, { "2", "22"} };
Object columnNames[] = { "Column One", "Column Two" };
shortcutKeysTable = new JTable(rowData, columnNames);
JScrollPane scrollPane = new JScrollPane(shortcutKeysTable);
this.add(scrollPane, BorderLayout.CENTER);
this.setSize(300, 150);
return shortcutKeysTable;
}
}
Итак, проблема такова, что точно с этим кодом, не показывает имена столбцов - только строку данных без моего размера, результат находится в небольшой таблице не с моими предпочтениями. НО когда в методе или в конструкторе добавить эту строку:
this.setVisible(true);
Затем эта таблица показывает данные строки и столбцы с моим размером 300x150 НО когда я нажимаю ОК Выход «X», то, конечно, это диалог исчезала, но показать новый пустой диалог:
http://i.imgur.com/SzkF5iK.png
Что я сделал не так и как я могу решить эту проблему?
Спасибо за быстрый ответ. Я удалил из объекта JScrollPanel метода, а в конструкторе изменил это this.add (shortcutKeysTable, BorderLayout.CENTER); to this.add (новый JScrollPanel (shortcutKeysTable), BorderLayout.CENTER); и теперь все работает. Спасибо :) – ullQuiorra