Введение в Swing

Продолжаю эксперементировать и изучать Java. Сегодня я познакомился с библиотекой javax.swing, которая позволяет с относительной простотой создавать пользовательский интерфейс. На этот раз я использую не любимую Eclipse, а с трудом скачанный JDeveloper с сайта Oracle.

jdeveloper_new_project.PNG jdeveloper_swing.PNG

Создаю новую программу - "Application", затем через Wizard (New/Projects/Java Application Project) добавляю проект. Автоматически создаются окошки типа JFrame и по моему выбору - встраивается менюшка (JMenu + JMenuBar + JMenuItem). Элементарное задание - научиться работать с меню и табличкой (JTable).

Добавить элемент меню как оказалось очень просто - как в VisualStudio выбрав в дизайне нужный раздел. А вот связывать событие нажатия пришлось изучая существующий код для AboutBox'а о том как используется ActionListener. Создав второе окно (frame), и связав через addActionListener функцию обработки события, окошко можно показать простым кодом:

Frame FriendsFrame= new FriendsFrame(); //класс наследует JFrame
FriendsFrame.setVisible(true);

jdeveloper_application_navigator.PNG jdeveloper_JTable.PNG

С окошками разобрались, добавим теперь за табличку . Как полезно объясняет RSDN, чтобы иметь работать с данными таблицы, необходимо иметь модель данных. Можно написать свою реализацию TableModel либо AbstractTableModel. Можно также воспользоваться существующим классом javax.swing.table.DefaultTableModel. Для этого нужно создавать таблицу с явным указанием модели:

DefaultTableModel model = new DefaultTableModel();
jTable1 = new JTable(model);
model.addColumn("Name");
model.addColumn("Posts");
for (int c=0; c<10; c++){
model.addRow(new Object[]{"User"+c,Math.round(10*Math.random())});
}

jTable1.setBounds(new Rectangle(35, 45, 310, 260));


Читайте также

RSS