Создание Jframe с диалоговым вводом данных - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день. У меня есть задача: нужно показать в окне пять кнопок с надписями. Определить в диалоговом вводе способ укладки компонентов указав соответствующую букву. A) в поле BorderLayout Б) в FlowLayout C) в FlowLayout, выровненном слева D) в FlowLayout, выровненном справа E) в GridLayout в виде одной строки F) в GridLayout как один столбец G) в таблице GridLayout в виде таблицы (3, 2) Я не знаю как это реализовать, может быть через switch case? И как прежде JFrame создать диалоговый ввод?
Листинг программы
  1. public class Task {
  2. public static void main(String[] args) {
  3. ButtonFrame frame = new ButtonFrame();
  4. frame.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
  5. frame.setVisible(true);
  6. }
  7. }
  8. class ButtonFrame extends JDialog {
  9. public ButtonFrame() {
  10. setSize(300,200);
  11. setTitle("5 Buttons.");
  12. ButtonPanel panel = new ButtonPanel();
  13. add(panel);
  14. }
  15. }
  16. class ButtonPanel extends JPanel {
  17. public ButtonPanel() {
  18. JButton firstButton = new JButton("1");
  19. JButton secondButton = new JButton ("2");
  20. JButton thirdButton = new JButton("3");
  21. JButton fourthButton = new JButton("4");
  22. JButton fifthButton = new JButton("5");
  23. add(firstButton);
  24. add(secondButton);
  25. add(thirdButton);
  26. add(fourthButton);
  27. add(fifthButton);
  28. }
  29. }

Решение задачи: «Создание Jframe с диалоговым вводом данных»

textual
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4.  
  5. public class Task {
  6.  
  7.     public static void main(String[] args) {
  8.         FlowLayout flowLayout = new FlowLayout();
  9.         GridLayout gridLayout = new GridLayout();
  10.         BorderLayout borderLayout = new BorderLayout();
  11.  
  12.         JPanel panel = new JPanel(borderLayout);
  13.         panel.add(new JButton("1"), BorderLayout.NORTH);
  14.         panel.add(new JButton("2"), BorderLayout.WEST);
  15.         panel.add(new JButton("3"), BorderLayout.CENTER);
  16.         panel.add(new JButton("4"), BorderLayout.EAST);
  17.         panel.add(new JButton("5"), BorderLayout.SOUTH);
  18.  
  19.         JFrame mainFrame = new JFrame();
  20.         mainFrame.setSize(300, 200);
  21.         mainFrame.setTitle("5 Buttons.");
  22.         mainFrame.add(panel);
  23.         mainFrame.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
  24.         mainFrame.setLocationRelativeTo(null);
  25.         mainFrame.setVisible(true);
  26.  
  27.         JDialog dialogFrame = new JDialog(mainFrame, "Select item", false);
  28.         JComboBox<String> items = new JComboBox<>(new String[]{"A", "B", "C", "D", "E", "F", "G"});
  29.         items.setSelectedIndex(0);
  30.         items.setAction(new AbstractAction() {
  31.             @Override
  32.             public void actionPerformed(ActionEvent e) {
  33.                 switch (items.getSelectedIndex()) {
  34.                     case 0:
  35.                         panel.setLayout(borderLayout);
  36.                         break;
  37.                     case 1:
  38.                         flowLayout.setAlignment(FlowLayout.CENTER);
  39.                         panel.setLayout(flowLayout);
  40.                         break;
  41.                     case 2:
  42.                         flowLayout.setAlignment(FlowLayout.LEFT);
  43.                         panel.setLayout(flowLayout);
  44.                         break;
  45.                     case 3:
  46.                         flowLayout.setAlignment(FlowLayout.RIGHT);
  47.                         panel.setLayout(flowLayout);
  48.                         break;
  49.                     case 4:
  50.                         gridLayout.setRows(1);
  51.                         gridLayout.setColumns(5);
  52.                         panel.setLayout(gridLayout);
  53.                         break;
  54.                     case 5:
  55.                         gridLayout.setColumns(1);
  56.                         gridLayout.setRows(5);
  57.                         panel.setLayout(gridLayout);
  58.                         break;
  59.                     case 6:
  60.                         gridLayout.setRows(3);
  61.                         gridLayout.setColumns(2);
  62.                         panel.setLayout(gridLayout);
  63.                         break;
  64.                 }
  65.                 panel.setVisible(false);
  66.                 panel.setVisible(true);        // просто для перерисовки, repaint не сработал
  67.  
  68. //                dialogFrame.setVisible(false);   // если нужно чтобы после выбора диалоговое окно исчезло
  69. //                mainFrame.setVisible(true);    // если нужно чтобы главное окно появилось после выбора буквы ( закомментировать верхний mainFrame.setVisible )
  70.             }
  71.         });
  72.         dialogFrame.getContentPane().add(items);
  73.  
  74.         dialogFrame.setSize(300, 80);
  75.         dialogFrame.setLocationRelativeTo(null);
  76.         dialogFrame.setVisible(true);
  77.     }
  78. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы