Как создать приложение с графическим интерфейсом на Java
Обзор
В Java колебания используются для создания приложения с графическим интерфейсом. Он имеет различные функции и широко используется для создания приложений с графическим интерфейсом в java. В этой статье мы расскажем все о библиотеке свинга в Java.
Java-свинг
Swing разработан на чистой Java. Компоненты качелей могут иметь одинаковый внешний вид на всех платформах и предлагать сменные внешний вид. Компоненты качелей легкие.
Пример:
Java-программа для отображения креатива и отображения кадра
импортировать javax.swing.*;
класс F1 расширяет JFrame{
F1 () {
установить размер (200 200);
setTitle("ДЕМО ГРАФИЧЕСКОГО ИНТЕРФЕЙСА");
установить расположение (100 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
установитьвидимый (истина);
}
public static void main (String args []) {
F1 f= новый F1();
}
}
Выход:
javac F1.java
Ява F1
Иерархия контейнеров
Контейнер верхнего уровня:
- Место для покраски других компонентов качелей
- Например. JFrame, JDialog, JApplet
- Упрощение позиционирования атомарных компонентов
- Например, JPanel, JSplitPane, JTabbedPane
- Самодостаточные компоненты, которые предоставляют информацию и получают ввод от пользователя.
- Например, JButton, JLabel, JComboBox, JTextField, JTable
- JButton — это реализация «нажимной» кнопки.
- Кнопки можно настраивать и в какой-то степени управлять действиями
- JOptionPane позволяет легко открывать стандартное диалоговое окно, которое запрашивает у пользователей значение или информирует их о чем-либо.
- Хотя класс может показаться сложным из-за большого количества методов, почти все случаи использования этого класса представляют собой однострочные вызовы одного из статических методов, показанных ниже:
Подобно тому, как класс может иметь переменные и методы в качестве членов, класс также может содержать другой класс, который называется вложенным классом.
Концепция внутренних классов была введена в java 1.1.
Есть несколько преимуществ использования внутренних классов:
- Делаем ваш код более читабельным
- Разрешение инкапсулировать служебные классы в класс, использующий его
- Упрощение процесса написания класса, тем самым поощряя разработчиков быть более объектно-ориентированными.
Типы внутреннего класса следующие:
- Внутренний класс-член
- Статический внутренний класс
- Локальный внутренний класс
- Анонимный класс
Обработка событий с использованием внутреннего класса-члена:
импортировать javax.swing.*;
импортировать java.awt.*;
импортировать java.awt.event.*;
класс M1 расширяет JFrame
{
Контейнер с;
JКнопка b1, b2;
класс L1 реализует ActionListener
{
public void actionPerformed (ActionEvent ae) {
если(ae.getSource()==b1)
{
JOptionPane.showMessageDialog(c, «Вы нажали кнопку 1»);
}
если(ae.getSource()==b2)
{
JOptionPane.showMessageDialog(c"Вы нажали кнопку 2");
}
}
}
М1()
{
c=getContentPane();
c.setLayout (новый FlowLayout ());
b1=новая кнопка JButton("Нажмите 1");
b2= новая JButton("Нажмите 2");
с.добавить(b1);
с.добавить(b2);
L1 a= новый L1();
b1.addActionListener(а);
b2.addActionListener(а);
}
public static void main (String args []) {
M1 f= новый M1();
f.setSize(200,200);
f.setTitle («Нажатие кнопки»);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible (истина);
}
}
Менеджеры макетов
Менеджер компоновки Java определяет, как будут располагаться компоненты при их добавлении во фрейм. В пакет AWT входят следующие классы компоновки:
- FlowLayout
- Границамакет
- Макет сетки
FlowLayout
Потоковая компоновка упорядочивает компоненты в направленном потоке, подобно строкам текста в абзаце, до тех пор, пока не останется места, а затем переходит на следующую строку.
По умолчанию компоненты располагаются по центру. Программист может указать выравнивание, используя один из следующих аргументов конструктора:
- FlowLayout.LEFT
- FlowLayout.ЦЕНТР
- FlowLayout.RIGHT
Компоновка границы размещает контейнер, упорядочивая и изменяя размер его компонентов, чтобы они соответствовали пяти регионам: север, юг, восток, запад и центр.
Каждый регион может содержать не более одного компонента и определяется соответствующей константой: СЕВЕР, ЮГ, ВОСТОК, ЗАПАД и ЦЕНТР.
Программист может указать регион, используя в методе add следующее:
- добавить("Север", b1);
- добавить("Юг",b2);
- добавить("Восток",b3);
- добавить("Запад",b4);
- добавить("Центр",b5);
- добавить (BorderLayout.NORTH, b1);
- добавить (BorderLayout. ЮГ, b2);
- добавить (BorderLayout.EAST, b3);
- добавить (BorderLayout.WEST, b4);
- добавить (BorderLayout. ЦЕНТР, b5);
Примечание 2 : компиляция завершается ошибкой, если имя константы не в верхнем регистре, как показано.
Примечание 3 : Вышеупомянутое также можно комбинировать.
JLabel
JLabel — это область отображения для короткой текстовой строки или изображения, или того и другого. Метка не реагирует на входные события.
Программа:
импортировать java.awt.*;
импортировать javax.swing.*;
импортировать java.awt.event.*;
класс S2 расширяет JFrame{
Контейнер с;
JTextField txt1;
JКнопка btn1;
JLabel фунт1, фунт2;
S2 () {
c=getContentPane();
c.setLayout (новый FlowLayout ());
lbl1= new JLabel("Введите число");
txt1 = новый JTextField (10);
btn1= новая JButton("Ответить");
lbl2= новая JLabel();
с. добавить (фунт1);
с. добавить (txt1);
с. добавить (кнопка1);
с. добавить (фунт2);
btn1.addActionListener (новый L2());
}
public static void main (String args []) {
S2 frm= новый S2();
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setSize (250 150);
frm.setTitle («Поиск квадратов»);
frm.setVisible (истина);
}
класс L2 реализует ActionListener{
public void actionPerformed (ActionEvent ae) {
пытаться{
int a = Integer.ParseInt (txt1.getText ());
поплавок s= а*а;
lbl2.setText («Квадрат =» + с);
}
поймать (NumberFormatException e) {
JOptionPane.showMessageDialog(c"Пожалуйста, введите целое число");
txt1.setText (" ");
txt1.requestFocus();
}
}
}
}
Обработка ключевых событий доски
Программа:
импортировать java.awt.*;
импортировать javax.swing.*;
импортировать java.awt.event.*;
класс S7 расширяет JFrame{
Контейнер с;
JTextField txt1;
JКнопка btn1;
JLabel фунт1, фунт2;
S7 () {
c=getContentPane();
c.setLayout (новый FlowLayout ());
lbl1= new JLabel("Введите число");
txt1 = новый JTextField (10);
btn1= новая JButton("Ответить");
lbl2= новая JLabel();
с. добавить (фунт1);
с. добавить (txt1);
с. добавить (кнопка1);
с. добавить (фунт2);
btn1.addActionListener (новый L2());
btn1.addKeyListener (новый L3());
}
public static void main (String args []) {
S7 фрм= новый S7();
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setSize (250 150);
frm.setTitle («Поиск квадратов»);
frm.setVisible (истина);
}
класс L3 реализует KeyListener
{
public void keyPressed(KeyEvent ke)
{
если(ke.getKeyCode()==KeyEvent.VK_ENTER);
пытаться{
int a = Integer.parseInt (txt1.getText());
поплавок s= а*а;
lbl2.setText('Квадрат='+s');
}
поймать (NumberFormatException e) {
JOptionPane.showMessageDialog(c"Пожалуйста, введите целое число");
txt1.setText («»);
txt1.requestFocus();
lbl2.setText ("");
}
}
}
public void keyReleased (KeyEvent ke) {}
public void keyTyped (KeyEvent ke) {}
}
класс L2 реализует ActionListener{
public void actionPerformed (ActionEvent ae) {
пытаться{
int a = Integer.parseInt (txt1.getText());
поплавок с=а*а;
lbl2.setText («Квадрат =» + с);
}
поймать (NumberFormatExcepption e) {
JOptionPane.showMessageDialog(c"Пожалуйста, введите целое число");
txt1.setText («»);
txt1.requestFocus();
lbl2.setText ("");
}
}
}
}
Обработка событий Windows
Программа :
импортировать java.awt.*;
импортировать javax.swing.*;
импортировать java.awt.event.*;
класс S8 расширяет JFrame{
Контейнер с;
JTextField txt1;
JКнопка btn1;
JLabel фунт1, фунт2;
S8 () {
c=getContentPane();
c.setLayout (новый FlowLayout ());
lbl1= new JLabel("Введите число");
txt1 = новый JTextField (10);
btn1= новая JButton("Ответить");
lbl2= новая JLabel();
с. добавить (фунт1);
с. добавить (txt1);
с. добавить (кнопка1);
с. добавить (фунт2);
btn1.addActionListener (новый L2());
btn1.addKeyLisener (новый L3());
this.addWindowListener (новый L4());
}
public static void main (String args []) {
S8 frm= новый S8();
frm.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frm.setSize (250 150);
frm.setTitle («Поиск квадратов»);
frm.setVisible (истина);
}
класс L4 реализует WindowListener{
public void windowActivated(WindowEvent e){}
public void windowDeactivated (WindowEvent e) {}
public void windowOpened (WindowEvent e) {
JOptionPane.showMessageDialog(c"Добро пожаловать в Square Calculator");
}
общественное недействительное окноClosed (WindowEvent e) {}
public void windowClosing (WindowEvent e) {
int output = JOptionPane.showConfirmDialog(c"Вы хотите выйти");
если (выход == JOptionPane.YES_OPTION) {
Система.выход(1);
}
}
общественное недействительное окноIconified(WindowEvent e){}
общественное недействительное окноDeiconified(WindowEvent e){}
}
класс L2 реализует ActionListener{
public void actionPerformed (ActionEvent ae) {
пытаться{
int a=Integer.parseInt(txt1.getText());
поплавок с=а*а;
lbl2.setText («Квадрат =» + с);
}
поймать (NumberFormatException e) {
JOptionPane.showMessageDialog(c"Пожалуйста, введите целое число");
txt1.setText («»);
txt1.requestFocus();
lbl2.setText ("");
}
}
}
класс L3 реализует KeyListener{
public void keyPressed(KeyEvent ke){
если(ke.getKeyCode()==KeyEvent.VK_ENTER){
пытаться{
int a = Integer.parseInt (txt1.getText());
поплавок с=а*а;
lbl2.setText («Квадрат =» + с);
}
поймать (NumberFormatException e) {
JOptionPane.showMessageDialog(c"Пожалуйста, введите целое число");
txt1.setText («»);
txt1.requestFocus();
lbl2.setText ("");
}
}
}
public void keyReleased (KeyEvent ke) {}
public void keyTyped (KeyEvent ke) {}
}
}
Заключение
Swing разработан на чистом языке java и широко используется, поскольку он имеет одинаковый внешний вид на всех платформах и предлагает подключаемый внешний вид. Надеюсь, вам понравилась эта статья, дайте мне знать, если есть отзывы. :) ❤️

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































