Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.EventQueue;//класс, который обеспечивает очередь событий глобально
- import javax.swing.JFrame; //для создания основного контейнера для приложения
- import javax.swing.JLabel; //для создания метки
- import javax.swing.JTextArea; //для создания поля ввода
- import javax.swing.JSpinner; //для создания счетчика с выбором значения
- import javax.swing.SpinnerNumberModel; //модель определяет набор числовых значений
- import javax.swing.event.ChangeEvent; //используется, чтобы уведомить, что состояние изменило в конечном счете источник.
- import javax.swing.event.ChangeListener; //слушатель ChangeListener реагирует на изменение состояния объекта
- public class Main {
- private JFrame frame; //создание приватного объекта-фрейма
- JSpinner spinnerSize; //создание счетчика с выбором значений
- JTextArea textAreaTracery; //создание поля ввода
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable(){ //SwingUtilities.invokeLater предназначена для запуска асинхронной операции. Она сохраняет действие, и запускает его на одной из следующих итераций цикла сообщений.
- public void run(){//создание метода, не возвращающего значения
- try{ //начало блока кода, который потенциально может привести к ошибке
- Main window = new Main(); //создание объекта класса Main
- window.frame.setVisible(true); //установить видимость для фрейма
- }
- catch (Exception e){ //начало блока кода, предназначенного для перехвата и обработки исключений
- e.printStackTrace();//используется для подробного вывода ошибок в консоли
- }
- }
- });
- }
- public Main(){ //создание экземпляра класса Main
- initialize(); //объявление метода
- }
- private void initialize(){ //описание метода
- frame = new JFrame(); //объявление фрейма
- frame.setBounds(100, 100, 450, 300); //методу передаются четыре параметра, определяющих расположение и размеры компонента
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //это нужно для того чтобы при закрытии окна закрывалась и программа, иначе она останется висеть в процессах
- frame.getContentPane().setLayout(null); //getContentPane панель содержимого, занимающая все пространство окна
- //setLayout(null) самостоятельное расположение компонентов, добавляемых на панель
- JLabel label = new JLabel( //создание метки
- "Размерность узора: ");
- label.setBounds(35, 26, 121, 14); //точное размещение компонентов
- frame.getContentPane().add(label); //создание панели с полосами прокрутки, в нее помещается объект label, панель добавляется в панель содержимого окна.
- JLabel label_1 = new JLabel( //создание метки
- "Узор:");
- label_1.setBounds(35, 74, 46, 14); //точное размещение компонентов
- frame.getContentPane().add(label_1); //создание панели с полосами прокрутки, в нее помещается объект label, панель добавляется в панель содержимого окна.
- textAreaTracery = new JTextArea(); //создание поля ввода
- textAreaTracery.setBounds(108, 74, 213, 177); //точное размещение компонентов
- frame.getContentPane().add(textAreaTracery); //создание панели с полосами прокрутки, в нее помещается объект textAreaTracery, панель добавляется в панель содержимого окна.
- spinnerSize = new JSpinner(); //создание счетчика с выбором значения
- spinnerSize.addChangeListener(new ChangeListener() { //создание слушателя, реагирующего на изменение состояния объекта
- @Override
- public void stateChanged(ChangeEvent e) { //объявление приватного метода
- int size = (Integer)spinnerSize.getValue(); //создание переменной со значением, определяемым выбранным в счетчике числом
- String str = ""; //создание строки
- for (int i=1; i<=size; i++){ //цикл для выода числа узором
- for (int j=1; j<=i; j++){
- str = str + j + " ";
- }
- str = str + "\n";
- }
- textAreaTracery.setText(str);//задание нового текста надписи
- }
- });
- spinnerSize.setModel(new SpinnerNumberModel(0, 0, 9, 1)); //задание границ для счетчика
- spinnerSize.setBounds(181, 23, 46, 20); //точное размещение компонентов
- frame.getContentPane().add(spinnerSize); //создание панели с полосами прокрутки, в нее помещается объект spinnerSize, панель добавляется в панель содержимого окна.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement