- Какие существуют библиотеки для создания графических интерфейсов на Java
- JavaFX
- Swing
- SWT
- Как создать графический интерфейс с примерами Swing на Java
- Что такое Swing в Java?
- Контейнерный класс
- Разница между AWT и Swing
- Иерархия
- JButton Class
- JTextField Class
- JScrollBar Class
- JPanel Class
- JMenu Class
- Класс JList
- JLabel Class
- JComboBox Class
- Макет границы
- Макет потока
- GridBag Layout
- Пример: фрейм чата
Какие существуют библиотеки для создания графических интерфейсов на Java
Узнайте о популярных библиотеках JavaFX, Swing и SWT для создания графических интерфейсов в Java-приложениях!
Java предлагает множество библиотек для создания графических интерфейсов. В этой статье мы рассмотрим популярные библиотеки, которые используются разработчиками для создания визуальных компонентов в Java-приложениях. 😃
JavaFX
JavaFX является современной библиотекой для создания графических интерфейсов в Java-приложениях. Она предоставляет множество встроенных компонентов, таких как кнопки, текстовые поля, таблицы и слайдеры. Также поддерживает CSS-стилизацию.
Пример создания простого окна с кнопкой в JavaFX:
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Main extends Application < public static void main(String[] args) < launch(args); >@Override public void start(Stage primaryStage) < Button btn = new Button("Click me!"); StackPane root = new StackPane(btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("JavaFX Example"); primaryStage.setScene(scene); primaryStage.show(); >>
Swing
Swing — это более старая библиотека, чем JavaFX, но до сих пор используется в некоторых проектах. Swing предоставляет широкий набор компонентов и возможностей для создания графических интерфейсов. Однако, Swing имеет менее современный дизайн и не поддерживает CSS.
Пример создания простого окна с кнопкой в Swing:
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class Main < public static void main(String[] args) < JFrame frame = new JFrame("Swing Example"); JButton button = new JButton("Click me!"); JPanel panel = new JPanel(); panel.add(button); frame.add(panel); frame.setSize(300, 250); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); >>
SWT
Standard Widget Toolkit (SWT) — это библиотека для создания графических интерфейсов, разработанная компанией IBM. SWT предоставляет набор стандартных виджетов, таких как кнопки, текстовые поля и таблицы. SWT использует нативные компоненты операционной системы, что обеспечивает высокую производительность и совместимость с различными платформами.
Пример создания простого окна с кнопкой в SWT:
import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class Main < public static void main(String[] args) < Display display = new Display(); Shell shell = new Shell(display); Button button = new Button(shell, SWT.PUSH); button.setText("Click me!"); button.setBounds(10, 10, 100, 30); shell.setSize(300, 250); shell.open(); while (!shell.isDisposed()) < if (!display.readAndDispatch()) < display.sleep(); >> display.dispose(); > >
Выбор библиотеки для создания графических интерфейсов зависит от ваших потребностей и опыта. JavaFX является наиболее современным и рекомендуется для новых проектов, однако Swing и SWT могут быть подходящими для определенных ситуаций или для работы с существующими проектами.
Помимо этих, существуют и другие сторонние библиотеки, но в данной статье мы остановились на наиболее популярных и широко используемых. Удачи вам в изучении Java-разработки! 🚀
Как создать графический интерфейс с примерами Swing на Java
Swing в Java является частью базового класса Java, который является независимым от платформы. Он используется для создания оконных приложений и включает в себя такие компоненты, как кнопка, полоса прокрутки, текстовое поле и т. д.
Объединение всех этих компонентов создает графический интерфейс пользователя.
Что такое Swing в Java?
Swing в Java – это легкий инструментарий с графическим интерфейсом, который имеет широкий спектр виджетов для создания оптимизированных оконных приложений. Это часть JFC (Java Foundation Classes). Он построен на основе AWT API и полностью написан на Java. Он не зависит от платформы в отличие от AWT и имеет легкие компоненты.
Создавать приложения становится проще, поскольку у нас уже есть компоненты GUI, такие как кнопка, флажок и т. д.
Контейнерный класс
Любой класс, в котором есть другие компоненты, называется контейнерным классом. Для создания приложений с графическим интерфейсом необходим как минимум один класс контейнеров.
Ниже приведены три типа контейнерных классов:
- Панель – используется для организации компонентов в окне.
- Рамка – полностью функционирующее окно со значками и заголовками.
- Диалог – это как всплывающее окно, но не полностью функциональное, как рамка.
Разница между AWT и Swing
Иерархия
Объяснение: Все компоненты в свинге, такие как JButton, JComboBox, JList, JLabel, унаследованы от класса JComponent, который можно добавить в классы контейнера.
Контейнеры – это окна, такие как рамка и диалоговые окна. Основные компоненты являются строительными блоками любого графического приложения. Такие методы, как setLayout, переопределяют макет по умолчанию в каждом контейнере. Контейнеры, такие как JFrame и JDialog, могут добавлять только компонент к себе. Ниже приведены несколько компонентов с примерами, чтобы понять, как мы можем их использовать.
JButton Class
Он используется для создания помеченной кнопки. Использование ActionListener приведет к некоторым действиям при нажатии кнопки. Он наследует класс AbstractButton и не зависит от платформы.
import javax.swing.*; public class example < public static void main(String args[]) < JFrame a = new JFrame("example"); JButton b = new JButton("click me"); b.setBounds(40,90,85,20); a.add(b); a.setSize(300,300); a.setLayout(null); a.setVisible(true); >>
JTextField Class
Он наследует класс JTextComponent и используется для редактирования однострочного текста.
import javax.swing.*; public class example < public static void main(String args[]) < JFrame a = new JFrame("example"); JTextField b = new JTextField("edureka"); b.setBounds(50,100,200,30); a.add(b); a.setSize(300,300); a.setLayout(null); a.setVisible(true); >>
JScrollBar Class
Он используется для добавления полосы прокрутки, как горизонтальной, так и вертикальной.
import javax.swing.*; class example < example()< JFrame a = new JFrame("example"); JScrollBar b = new JScrollBar(); b.setBounds(90,90,40,90); a.add(b); a.setSize(300,300); a.setLayout(null); a.setVisible(true); >public static void main(String args[]) < new example(); >>
JPanel Class
Он наследует класс JComponent и предоставляет пространство для приложения, которое может присоединить любой другой компонент.
import java.awt.*; import javax.swing.*; public class Example < Example()< JFrame a = new JFrame("example"); JPanel p = new JPanel(); p.setBounds(40,70,200,200); JButton b = new JButton("click me"); b.setBounds(60,50,80,40); p.add(b); a.add(p); a.setSize(400,400); a.setLayout(null); a.setVisible(true); >public static void main(String args[]) < new Example(); >>
JMenu Class
Он наследует класс JMenuItem и является компонентом выпадающего меню, которое отображается из строки меню.
import javax.swing.*; class Example < JMenu menu; JMenuItem a1,a2; Example() < JFrame a = new JFrame("Example"); menu = new JMenu("options"); JMenuBar m1 = new JMenuBar(); a1 = new JMenuItem("example"); a2 = new JMenuItem("example1"); menu.add(a1); menu.add(a2); m1.add(menu); a.setJMenuBar(m1); a.setSize(400,400); a.setLayout(null); a.setVisible(true); >public static void main(String args[]) < new Example(); >>
Вывод:
Класс JList
Он наследует класс JComponent, объект класса JList представляет список текстовых элементов.
import javax.swing.*; public class Example < Example()< JFrame a = new JFrame("example"); DefaultListModell = new DefaultListModel< >(); l.addElement("first item"); l.addElement("second item"); JList b = new JList< >(l); b.setBounds(100,100,75,75); a.add(b); a.setSize(400,400); a.setVisible(true); a.setLayout(null); > public static void main(String args[]) < new Example(); >>
Вывод:
JLabel Class
Используется для размещения текста в контейнере. Он также наследует класс JComponent.
import javax.swing.*; public class Example < public static void main(String args[]) < JFrame a = new JFrame("example"); JLabel b1; b1 = new JLabel("edureka"); b1.setBounds(40,40,90,20); a.add(b1); a.setSize(400,400); a.setLayout(null); a.setVisible(true); >>
Вывод:
JComboBox Class
Он наследует класс JComponent и используется для отображения всплывающего меню выбора.
import javax.swing.*; public class Example< JFrame a; Example()< a = new JFrame("example"); string courses[] = < "core java","advance java", "java servlet">; JComboBox c = new JComboBox(courses); c.setBounds(40,40,90,20); a.add(c); a.setSize(400,400); a.setLayout(null); a.setVisible(true); > public static void main(String args[]) < new Example(); >>
Вывод:
Для размещения компонентов внутри контейнера мы используем менеджер макета. Ниже приведены несколько менеджеров макетов:
Макет границы
Менеджер по умолчанию для каждого JFrame – BorderLayout. Он размещает компоненты в пяти местах: сверху, снизу, слева, справа и по центру.
Макет потока
FlowLayout просто кладет компоненты в ряд один за другим, это менеджер компоновки по умолчанию для каждого JPanel.
GridBag Layout
GridBagLayout размещает компоненты в сетке, что позволяет компонентам охватывать более одной ячейки.
Пример: фрейм чата
import javax.swing.*; import java.awt.*; class Example < public static void main(String args[]) < JFrame frame = new JFrame("Chat Frame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); JMenuBar ob = new JMenuBar(); JMenu ob1 = new JMenu("FILE"); JMenu ob2 = new JMenu("Help"); ob.add(ob1); ob.add(ob2); JMenuItem m11 = new JMenuItem("Open"); JMenuItem m22 = new JMenuItem("Save as"); ob1.add(m11); ob1.add(m22); JPanel panel = new JPanel(); // the panel is not visible in output JLabel label = new JLabel("Enter Text"); JTextField tf = new JTextField(10); // accepts upto 10 characters JButton send = new JButton("Send"); JButton reset = new JButton("Reset"); panel.add(label); // Components Added using Flow Layout panel.add(label); // Components Added using Flow Layout panel.add(tf); panel.add(send); panel.add(reset); JTextArea ta = new JTextArea(); frame.getContentPane().add(BorderLayout.SOUTH, panel); frame.getContentPane().add(BorderLayout.NORTH, tf); frame.getContentPane().add(BorderLayout.CENTER, ta); frame.setVisible(true); >>
Это простой пример создания GUI с использованием Swing в Java.
Средняя оценка 4.7 / 5. Количество голосов: 137
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Видим, что вы не нашли ответ на свой вопрос.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.