Java/Библиотека Swing: различия между версиями
< Java
Содержимое удалено Содержимое добавлено
Ilya (обсуждение | вклад) Отмена правки 130347, сделанной Volobuev Ilya (обсуждение) |
DannyS712 (обсуждение | вклад) м <source> -> <syntaxhighlight> (phab:T237267) |
||
Строка 2: | Строка 2: | ||
=== Начало === |
=== Начало === |
||
< |
<syntaxhighlight lang="java"> |
||
import javax.swing.*; // библиотека графических компонентов |
import javax.swing.*; // библиотека графических компонентов |
||
public class Alarm { |
public class Alarm { |
||
Строка 14: | Строка 14: | ||
} |
} |
||
} |
} |
||
</syntaxhighlight> |
|||
</source> |
|||
=== кнопка JButton === |
=== кнопка JButton === |
||
< |
<syntaxhighlight lang='java'> |
||
... |
... |
||
import java.awt.event.*; // импортируем интерфейс ActionListener |
import java.awt.event.*; // импортируем интерфейс ActionListener |
||
Строка 37: | Строка 37: | ||
... |
... |
||
} |
} |
||
</syntaxhighlight> |
|||
</source> |
|||
=== таблица JTable === |
=== таблица JTable === |
||
< |
<syntaxhighlight lang='java'> |
||
Object rowData[][] = { |
Object rowData[][] = { |
||
{ "1 1", "1 2", "1 3" }, |
{ "1 1", "1 2", "1 3" }, |
||
Строка 49: | Строка 49: | ||
JTable table = new JTable(rowData, columnNames); |
JTable table = new JTable(rowData, columnNames); |
||
frame.add(table); |
frame.add(table); |
||
</syntaxhighlight> |
|||
</source> |
|||
=== Контейнеры и разметки === |
=== Контейнеры и разметки === |
||
Чтобы разместить на главном окне несколько элементов нужно использовать панели и разметки. |
Чтобы разместить на главном окне несколько элементов нужно использовать панели и разметки. |
||
< |
<syntaxhighlight lang='java'> |
||
JPanel mainPanel = new JPanel(); |
JPanel mainPanel = new JPanel(); |
||
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS)); |
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS)); |
||
Строка 60: | Строка 60: | ||
mainPanel.add(table); |
mainPanel.add(table); |
||
frame.add(mainPanel); |
frame.add(mainPanel); |
||
</syntaxhighlight> |
|||
</source> |
|||
Строка 67: | Строка 67: | ||
{| class='wikitable' |
{| class='wikitable' |
||
|- |
|- |
||
| заменить панель на фрейме || < |
| заменить панель на фрейме || <syntaxhighlight lang='java'> |
||
frame.remove(mainPanel); |
frame.remove(mainPanel); |
||
frame.add(otherPanel); |
frame.add(otherPanel); |
||
frame.invalidate(); |
frame.invalidate(); |
||
frame.validate(); |
frame.validate(); |
||
</syntaxhighlight> |
|||
</source> |
|||
|- |
|- |
||
|} |
|} |
Текущая версия от 15:48, 16 апреля 2020
Книга Java
- Начало
- Hello World!
- Комментарии
- Переменные
- Стандартные структуры
- Операторы условий
- Полезные сокращения
- Операторы цикла
- Классы
- Исключения
- Коллекции
- Listeners
- GUI
- Паттерны
- Программы
- Компилирование
Начало[править]
import javax.swing.*; // библиотека графических компонентов
public class Alarm {
public static void main(String[] args) {
JFrame frame = new JFrame("FrameDemo"); // создаём главное окно приложения
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // чтобы процесс завершался после закрытия окна
JButton button1 = new JButton("Button 1"); // создаём кнопку
frame.add(button1); // добавляем кнопку на окно
frame.pack(); // автоматически настраиваем размер окна под содержимое
frame.setVisible(true); // отображаем окно
}
}
кнопка JButton[править]
...
import java.awt.event.*; // импортируем интерфейс ActionListener
class MainFrame extends JFrame implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){ // функция, в которой обрабатываются события всех кнопок
String command = e.getActionCommand();
if( command.equals( "add" )) {
dispose();
System.exit(0);
}
}
public JPanel createMainPanel(){
JButton addBtn = new JButton("Добавить будильник");
addBtn.setActionCommand("add");
addBtn.addActionListener(this); // указываем объект, реализующий интерфейс ActionListener,
// и в котором определён обработчик событий actionPerformed
...
}
таблица JTable[править]
Object rowData[][] = {
{ "1 1", "1 2", "1 3" },
{ "2 1", "2 2", "2 3" }
};
Object columnNames[] = { "Колонка 1", "Колонка 2", "Колонка 3" };
JTable table = new JTable(rowData, columnNames);
frame.add(table);
Контейнеры и разметки[править]
Чтобы разместить на главном окне несколько элементов нужно использовать панели и разметки.
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));
mainPanel.add(btn);
mainPanel.add(table);
frame.add(mainPanel);
JFrame[править]
заменить панель на фрейме | frame.remove(mainPanel);
frame.add(otherPanel);
frame.invalidate();
frame.validate();
|