Создание Jframe с диалоговым вводом данных - Java
Формулировка задачи:
Добрый день. У меня есть задача: нужно показать в окне пять кнопок с надписями. Определить в диалоговом вводе способ укладки компонентов указав соответствующую букву.
A) в поле BorderLayout
Б) в FlowLayout
C) в FlowLayout, выровненном слева
D) в FlowLayout, выровненном справа
E) в GridLayout в виде одной строки
F) в GridLayout как один столбец
G) в таблице GridLayout в виде таблицы (3, 2)
Я не знаю как это реализовать, может быть через switch case? И как прежде JFrame создать диалоговый ввод?
public class Task { public static void main(String[] args) { ButtonFrame frame = new ButtonFrame(); frame.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); frame.setVisible(true); } } class ButtonFrame extends JDialog { public ButtonFrame() { setSize(300,200); setTitle("5 Buttons."); ButtonPanel panel = new ButtonPanel(); add(panel); } } class ButtonPanel extends JPanel { public ButtonPanel() { JButton firstButton = new JButton("1"); JButton secondButton = new JButton ("2"); JButton thirdButton = new JButton("3"); JButton fourthButton = new JButton("4"); JButton fifthButton = new JButton("5"); add(firstButton); add(secondButton); add(thirdButton); add(fourthButton); add(fifthButton); } }
Решение задачи: «Создание Jframe с диалоговым вводом данных»
textual
Листинг программы
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; public class Task { public static void main(String[] args) { FlowLayout flowLayout = new FlowLayout(); GridLayout gridLayout = new GridLayout(); BorderLayout borderLayout = new BorderLayout(); JPanel panel = new JPanel(borderLayout); panel.add(new JButton("1"), BorderLayout.NORTH); panel.add(new JButton("2"), BorderLayout.WEST); panel.add(new JButton("3"), BorderLayout.CENTER); panel.add(new JButton("4"), BorderLayout.EAST); panel.add(new JButton("5"), BorderLayout.SOUTH); JFrame mainFrame = new JFrame(); mainFrame.setSize(300, 200); mainFrame.setTitle("5 Buttons."); mainFrame.add(panel); mainFrame.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); mainFrame.setLocationRelativeTo(null); mainFrame.setVisible(true); JDialog dialogFrame = new JDialog(mainFrame, "Select item", false); JComboBox<String> items = new JComboBox<>(new String[]{"A", "B", "C", "D", "E", "F", "G"}); items.setSelectedIndex(0); items.setAction(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { switch (items.getSelectedIndex()) { case 0: panel.setLayout(borderLayout); break; case 1: flowLayout.setAlignment(FlowLayout.CENTER); panel.setLayout(flowLayout); break; case 2: flowLayout.setAlignment(FlowLayout.LEFT); panel.setLayout(flowLayout); break; case 3: flowLayout.setAlignment(FlowLayout.RIGHT); panel.setLayout(flowLayout); break; case 4: gridLayout.setRows(1); gridLayout.setColumns(5); panel.setLayout(gridLayout); break; case 5: gridLayout.setColumns(1); gridLayout.setRows(5); panel.setLayout(gridLayout); break; case 6: gridLayout.setRows(3); gridLayout.setColumns(2); panel.setLayout(gridLayout); break; } panel.setVisible(false); panel.setVisible(true); // просто для перерисовки, repaint не сработал // dialogFrame.setVisible(false); // если нужно чтобы после выбора диалоговое окно исчезло // mainFrame.setVisible(true); // если нужно чтобы главное окно появилось после выбора буквы ( закомментировать верхний mainFrame.setVisible ) } }); dialogFrame.getContentPane().add(items); dialogFrame.setSize(300, 80); dialogFrame.setLocationRelativeTo(null); dialogFrame.setVisible(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д