SwingFrame - Java
Формулировка задачи:
Создать фрейм, в котором поместить 2 кнопки. При нажатии на первую из них в окне должен появиться список выбора, а при нажатии на вторую – метка с надписью. Список должен содержать не менее 5-ти элементов, надпись на метке сделана выбранным шрифтом и цветом. Нужно создать список методом SwingFrame и пожалуйста как можно проще с комментариями.Сама я вот начала но закончить не могу..
Листинг программы
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- //Фрейм, содержащий панель с кнопками
- public class ButtonFrame extends JFrame
- { public static final int DEFAULT_WIDTH = 300;
- public static final int DEFAULT_HEIGHT = 200;
- private JPanel buttonPanel;
- public ButtonFrame()
- { setTitle("ButtonTest");
- setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
- // Создание кнопок
- JButton yellowButton = new JButton ("Yellow");
- JButton blueButton = new JButton ("Blue");
- JButton redButton = new JButton ("Red");
- buttonPanel = new JPanel();
- // добавление кнопок к панели
- buttonPanel.add(yellowButton);
- buttonPanel.add(blueButton);
- //добавление панели к фрейму
- add(buttonPanel);
- // создание действий кнопок
- ColorAction yellowAction = new ColorAction(Color.YELLOW);
- ColorAction blueAction = new ColorAction(Color.BLUE);
- //связывание действий с кнопками
- yellowButton.addActionListener(yellowAction);
- blueButton.addActionListener(blueAction);
- }
- //слушатель действия, изменяющий цвет панели
- private class ColorAction implements ActionListener
- { private Color backgroundColor;
- public ColorAction (Color c)
- {backgroundColor = c;
- }
- public void actionPerformed (ActionEvent event)
- { buttonPanel.setBackground(backgroundColor);
- }
- }
- }
Решение задачи: «SwingFrame»
textual
Листинг программы
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- //Фрейм, содержащий панель с кнопками
- public class ButtonFrame extends JFrame {
- public static final int DEFAULT_WIDTH = 300;
- public static final int DEFAULT_HEIGHT = 200;
- //Панели
- private JPanel buttonPanel;
- private JPanel textPanel;
- //Кнопки
- private JButton listButton;
- private JButton lableButton;
- //Список
- private JComboBox change;
- //Компоненты списка
- private String[] listFont={"Verdana, Зеленый", "Monotype Corsiva, Красный", "Times New Roman, Синий","Bickham Script One, Orange","Segoe UI, Пурпурный"};
- private JLabel text;
- public ButtonFrame() {
- setTitle("ButtonTest");
- setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
- // Создание кнопок
- listButton = new JButton ("Выбор оформления");
- lableButton = new JButton ("Показать");
- //Создание выпадающего списка
- change=new JComboBox(listFont);
- //Текстовая метка
- text=new JLabel("Этот текст будет менять оформление");
- //Создание панелей
- buttonPanel = new JPanel();
- textPanel = new JPanel();
- // добавление элементов к панелям
- textPanel.add(change);
- textPanel.add(text);
- buttonPanel.add(listButton);
- buttonPanel.add(lableButton);
- //Скрытие метки и списка
- change.setVisible(false);
- text.setVisible(false);
- //Обработка события нажатия кнопки "Выбор оформления"
- listButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- change.setVisible(true);
- }
- });
- //Обработка события нажатия кнопки "Показать"
- lableButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- text.setVisible(true);
- //Получение значения выбранного в списке элемента
- int selectIndex=change.getSelectedIndex();
- //В зависимости от выбранного элемента применение свойств
- switch (selectIndex){
- case 0:
- text.setForeground(Color.GREEN);
- text.setFont(new Font("Verdana", Font.PLAIN, 14) );
- break;
- case 1:
- text.setForeground(Color.RED);
- text.setFont(new Font("Monotype Corsiva", Font.PLAIN, 14) );
- break;
- case 2:
- text.setForeground(Color.BLUE);
- text.setFont(new Font("Times New Roman", Font.ITALIC, 14) );
- break;
- case 3:
- text.setForeground(Color.ORANGE);
- text.setFont(new Font("Bickham Script One", Font.ROMAN_BASELINE, 14) );
- break;
- case 4:
- text.setForeground(Color.MAGENTA);
- text.setFont(new Font("Segoe UI", Font.PLAIN, 14) );
- break;
- default:
- System.out.println("Ничего не выбрано");
- }
- }
- });
- //добавление панелей к фрейму
- add(buttonPanel, BorderLayout.SOUTH);
- add(textPanel, BorderLayout.CENTER);
- //Отображение фрейма в середине
- setLocationRelativeTo(null);
- //Завершение программы по закрытию фрейма
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public static void main (String[] args) {
- ButtonFrame main = new ButtonFrame();
- main.setVisible(true);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д