Advertisement
Guest User

Untitled

a guest
May 21st, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.66 KB | None | 0 0
  1. import java.awt.EventQueue;//класс, который обеспечивает очередь событий глобально
  2. import javax.swing.JFrame; //для создания основного контейнера для приложения
  3. import javax.swing.JLabel; //для создания метки
  4. import javax.swing.JTextArea; //для создания поля ввода
  5. import javax.swing.JSpinner; //для создания счетчика с выбором значения
  6. import javax.swing.SpinnerNumberModel; //модель определяет набор числовых значений
  7. import javax.swing.event.ChangeEvent; //используется, чтобы уведомить, что состояние изменило в конечном счете источник.
  8. import javax.swing.event.ChangeListener; //слушатель ChangeListener реагирует на изменение состояния объекта
  9.  
  10. public class Main {
  11. private JFrame frame; //создание приватного объекта-фрейма
  12. JSpinner spinnerSize; //создание счетчика с выбором значений
  13. JTextArea textAreaTracery; //создание поля ввода
  14.  
  15. public static void main(String[] args) {
  16. EventQueue.invokeLater(new Runnable(){ //SwingUtilities.invokeLater предназначена для запуска асинхронной операции. Она сохраняет действие, и запускает его на одной из следующих итераций цикла сообщений.
  17. public void run(){//создание метода, не возвращающего значения
  18. try{ //начало блока кода, который потенциально может привести к ошибке
  19. Main window = new Main(); //создание объекта класса Main
  20. window.frame.setVisible(true); //установить видимость для фрейма
  21. }
  22. catch (Exception e){ //начало блока кода, предназначенного для перехвата и обработки исключений
  23. e.printStackTrace();//используется для подробного вывода ошибок в консоли
  24. }
  25. }
  26. });
  27. }
  28.  
  29. public Main(){ //создание экземпляра класса Main
  30. initialize(); //объявление метода
  31. }
  32.  
  33. private void initialize(){ //описание метода
  34. frame = new JFrame(); //объявление фрейма
  35. frame.setBounds(100, 100, 450, 300); //методу передаются четыре параметра, определяющих расположение и размеры компонента
  36. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //это нужно для того чтобы при закрытии окна закрывалась и программа, иначе она останется висеть в процессах
  37. frame.getContentPane().setLayout(null); //getContentPane панель содержимого, занимающая все пространство окна
  38. //setLayout(null) самостоятельное расположение компонентов, добавляемых на панель
  39. JLabel label = new JLabel( //создание метки
  40. "Размерность узора: ");
  41. label.setBounds(35, 26, 121, 14); //точное размещение компонентов
  42. frame.getContentPane().add(label); //создание панели с полосами прокрутки, в нее помещается объект label, панель добавляется в панель содержимого окна.
  43.  
  44. JLabel label_1 = new JLabel( //создание метки
  45. "Узор:");
  46. label_1.setBounds(35, 74, 46, 14); //точное размещение компонентов
  47. frame.getContentPane().add(label_1); //создание панели с полосами прокрутки, в нее помещается объект label, панель добавляется в панель содержимого окна.
  48.  
  49. textAreaTracery = new JTextArea(); //создание поля ввода
  50. textAreaTracery.setBounds(108, 74, 213, 177); //точное размещение компонентов
  51. frame.getContentPane().add(textAreaTracery); //создание панели с полосами прокрутки, в нее помещается объект textAreaTracery, панель добавляется в панель содержимого окна.
  52.  
  53. spinnerSize = new JSpinner(); //создание счетчика с выбором значения
  54. spinnerSize.addChangeListener(new ChangeListener() { //создание слушателя, реагирующего на изменение состояния объекта
  55. @Override
  56. public void stateChanged(ChangeEvent e) { //объявление приватного метода
  57. int size = (Integer)spinnerSize.getValue(); //создание переменной со значением, определяемым выбранным в счетчике числом
  58. String str = ""; //создание строки
  59.  
  60. for (int i=1; i<=size; i++){ //цикл для выода числа узором
  61. for (int j=1; j<=i; j++){
  62. str = str + j + " ";
  63. }
  64. str = str + "\n";
  65. }
  66. textAreaTracery.setText(str);//задание нового текста надписи
  67. }
  68. });
  69. spinnerSize.setModel(new SpinnerNumberModel(0, 0, 9, 1)); //задание границ для счетчика
  70. spinnerSize.setBounds(181, 23, 46, 20); //точное размещение компонентов
  71. frame.getContentPane().add(spinnerSize); //создание панели с полосами прокрутки, в нее помещается объект spinnerSize, панель добавляется в панель содержимого окна.
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement