Java Eclipse пример оконного приложения - создание окна, задание размеров, добавление надписей и кнопок, вывод сообщения
Primary tabs
Forums:
Далее пример урока 8 по программированию на Java.
Это пример содержит 5 классов (в проекте вам надо будет создать пять классов), предварительно создав два пакета пакета.
пакет TestForm
Этот пакет содержит два класса.
класс FormStart (создаёт "рамку", задаёт её размеры и запрашивает холст):
//IT FOR FREE
//fkn.ktu10.com; Онлайн-встречи IFF каждый понедельник в 20-20 по мск
//(можно задавать вопросы на сайте или онлайн-встречах)
package TestForm;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class FormStart {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true); // устанавливае стандартный внешний вид
JFrame frame = new JFrame("Здесь заголовок окна"); // желаемый заголовок
//Далее создаём поверхность (панель) для размещения компонентов
MainFormAppearance demo = new MainFormAppearance(); // внешность формы
frame.setContentPane(demo.createContentPane()); // передаем как параметр в коструктор
// задаём операцию, которая выполниться при закрытии
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300); // задаём размер окна
frame.setVisible(true); // форма будет видимой
} /* youtube.com/toybattle */
}
класс MainFormAppearance ( в одном своём методе задаёт внешность холста и возвращает ссылку на холст):
package TestForm;
import TestActions.*;
import javax.swing.*; // импортируем SWING
import java.awt.*; // импортируем все подпакеты AWT
import java.awt.event.ActionListener;
// Класс. который будет описывать внешний вид нашей формы
public class MainFormAppearance {
public JPanel createContentPane (){
// We create a bottom JPanel to place everything on.
// сначала создаётся "панель", на которой и размещаюся
// остальные компоненты
JPanel totalGUI = new JPanel(); // создаём "поверхность"
totalGUI.setLayout(null);
// Создадим ярлык (надпись) синего цвета
JLabel blueLabel = new JLabel("Какая-то надпись =)");
blueLabel.setLocation(10, 10); /* надпись синего цвета*/
blueLabel.setSize(300, 100); // размер области надписи
blueLabel.setHorizontalAlignment(0);
blueLabel.setForeground(Color.blue); // задаём цвет
totalGUI.add(blueLabel); // добавляем текстовую метку на поверхность
// Создаём кнопку---------------
JButton redButton = new JButton("Название кнопки 1 :))");
redButton.setLocation(120, 200); // расположение кнопки
redButton.setSize(200,50 ); // размер кнопки
// создаём объект-обработчик события
ActionListener actionListener = new TestActionListener(); // создаём создаём действие
// назначаем этот обработчик кнопке
redButton.addActionListener(actionListener);// прикрепляем действие к кнопке (срабоет по нажатии на неё)
totalGUI.add(redButton); // добавляем кнопку на поверхность
// Создадим ещё одну кнопку-------------------------
JButton ParceButton = new JButton("Кнопка 2!");
ParceButton.setLocation(200, 100); // расположение кнопки
ParceButton.setSize(100, 30 ); // размер кнопки
ActionListener ParceListener = new ParceListener(); // создаём создаём действие
ParceButton.addActionListener(ParceListener); // прикрепляем действие к кнопке
totalGUI.add(ParceButton); // добавляем на поверхность
// 3-я кнопка---------------------------------------
JButton Button3 = new JButton("Кнопка 3");
Button3.setLocation(200, 150); // местоположение
Button3.setSize(150, 30); // размер
ActionListener CListener = new CsvListener(); // создаём создаём действие типа CsvListener
Button3.addActionListener(CListener); // прикрепляем действие к кнопке типа CsvListener к кнопке 3
totalGUI.add(Button3);
totalGUI.setOpaque(true);
return totalGUI; // возвращаем внешний вид
}
}
Пакет TestActions.
В этом пакете будут расположены 3 класса-действия (действий), которые мы будем "прикреплять" к создаваемым кнопкам (см. класс выше MainFormAppearance)
Класс CsvListener:
package TestActions;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
// действие для кнопки 3
public class CsvListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
// нет реализации (никаких действий)
//System.exit(1); // если раскомментировать, то будет закрывать программу
}
}класс ParceListener:
package TestActions;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ParceListener implements ActionListener { // реализация интерфейса
public void actionPerformed(ActionEvent e) {
// задаём текст для сообщения
String message = "Кнопка 2 нажата=))";
// выполняем команду вывода сообщения
JOptionPane.showMessageDialog(new JFrame(), message, "Message by 2",
JOptionPane.ERROR_MESSAGE);
}
}
Класс TestActionListener:
package TestActions;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestActionListener implements ActionListener { // наследуемся от стандартного класса ActionListener
public void actionPerformed(ActionEvent e) {
// выведем сообщение из нескольких строк
// одну из них в кавычках
String message = "\"строка 1\"\n"
+ "строка2\n"
+ "строка 3";
JOptionPane.showMessageDialog(new JFrame(), message, "Несколько строк",
JOptionPane.ERROR_MESSAGE);
}
}- Log in to post comments
- 30486 reads