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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д