SwingFrame - Java

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

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

Создать фрейм, в котором поместить 2 кнопки. При нажатии на первую из них в окне должен появиться список выбора, а при нажатии на вторую – метка с надписью. Список должен содержать не менее 5-ти элементов, надпись на метке сделана выбранным шрифтом и цветом. Нужно создать список методом SwingFrame и пожалуйста как можно проще с комментариями.Сама я вот начала но закончить не могу..
Листинг программы
  1. import java.awt.*;
  2. import javax.swing.*;
  3. import java.awt.event.*;
  4. //Фрейм, содержащий панель с кнопками
  5. public class ButtonFrame extends JFrame
  6. { public static final int DEFAULT_WIDTH = 300;
  7. public static final int DEFAULT_HEIGHT = 200;
  8. private JPanel buttonPanel;
  9. public ButtonFrame()
  10. { setTitle("ButtonTest");
  11. setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
  12. // Создание кнопок
  13. JButton yellowButton = new JButton ("Yellow");
  14. JButton blueButton = new JButton ("Blue");
  15. JButton redButton = new JButton ("Red");
  16. buttonPanel = new JPanel();
  17. // добавление кнопок к панели
  18. buttonPanel.add(yellowButton);
  19. buttonPanel.add(blueButton);
  20. //добавление панели к фрейму
  21. add(buttonPanel);
  22. // создание действий кнопок
  23. ColorAction yellowAction = new ColorAction(Color.YELLOW);
  24. ColorAction blueAction = new ColorAction(Color.BLUE);
  25. //связывание действий с кнопками
  26. yellowButton.addActionListener(yellowAction);
  27. blueButton.addActionListener(blueAction);
  28. }
  29. //слушатель действия, изменяющий цвет панели
  30. private class ColorAction implements ActionListener
  31. { private Color backgroundColor;
  32. public ColorAction (Color c)
  33. {backgroundColor = c;
  34. }
  35. public void actionPerformed (ActionEvent event)
  36. { buttonPanel.setBackground(backgroundColor);
  37. }
  38. }
  39. }

Решение задачи: «SwingFrame»

textual
Листинг программы
  1. import java.awt.*;
  2.  
  3. import javax.swing.*;
  4. import java.awt.event.*;
  5. //Фрейм, содержащий панель с кнопками
  6. public class ButtonFrame extends JFrame {
  7.    public static final int DEFAULT_WIDTH = 300;
  8.    public static final int DEFAULT_HEIGHT = 200;
  9.    
  10.   //Панели
  11.    private JPanel buttonPanel;
  12.    private JPanel textPanel;
  13.    
  14.    //Кнопки
  15.    private JButton listButton;
  16.    private JButton lableButton;
  17.    
  18.    //Список
  19.    private JComboBox change;
  20.    //Компоненты списка
  21.    private String[] listFont={"Verdana, Зеленый", "Monotype Corsiva, Красный", "Times New Roman, Синий","Bickham Script One, Orange","Segoe UI, Пурпурный"};
  22.    private JLabel text;
  23.  
  24.    
  25. public ButtonFrame() {
  26.     setTitle("ButtonTest");
  27.     setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
  28.    
  29.    // Создание кнопок
  30.    listButton = new JButton ("Выбор оформления");
  31.    lableButton = new JButton ("Показать");
  32.    
  33.    //Создание выпадающего списка
  34.    change=new JComboBox(listFont);
  35.    
  36.    //Текстовая метка
  37.    text=new JLabel("Этот текст будет менять оформление");
  38.    
  39.    //Создание панелей
  40.    buttonPanel = new JPanel();
  41.    textPanel = new JPanel();
  42.    
  43.    // добавление элементов к панелям
  44.    textPanel.add(change);
  45.    textPanel.add(text);
  46.    
  47.    buttonPanel.add(listButton);
  48.    buttonPanel.add(lableButton);
  49.    
  50.    //Скрытие метки и списка
  51.    change.setVisible(false);
  52.    text.setVisible(false);
  53.    
  54.    //Обработка события нажатия кнопки "Выбор оформления"  
  55.    listButton.addActionListener(new ActionListener() {
  56.        @Override
  57.         public void actionPerformed(ActionEvent e) {
  58.            change.setVisible(true);
  59.             }
  60.         });
  61.    //Обработка события нажатия кнопки "Показать"  
  62.     lableButton.addActionListener(new ActionListener() {
  63.        
  64.        @Override
  65.         public void actionPerformed(ActionEvent e) {
  66.             text.setVisible(true);
  67.             //Получение значения выбранного в списке элемента
  68.             int selectIndex=change.getSelectedIndex();
  69.             //В зависимости от выбранного элемента применение свойств
  70.             switch (selectIndex){
  71.             case 0:
  72.                 text.setForeground(Color.GREEN);
  73.                 text.setFont(new Font("Verdana", Font.PLAIN, 14) );
  74.                 break;
  75.             case 1:
  76.                 text.setForeground(Color.RED);
  77.                 text.setFont(new Font("Monotype Corsiva", Font.PLAIN, 14) );
  78.                 break;
  79.             case 2:
  80.                 text.setForeground(Color.BLUE);
  81.                 text.setFont(new Font("Times New Roman", Font.ITALIC, 14) );
  82.                 break;
  83.             case 3:
  84.                 text.setForeground(Color.ORANGE);
  85.                 text.setFont(new Font("Bickham Script One", Font.ROMAN_BASELINE, 14) );
  86.                 break;
  87.             case 4:
  88.                 text.setForeground(Color.MAGENTA);
  89.                 text.setFont(new Font("Segoe UI", Font.PLAIN, 14) );
  90.                 break;
  91.             default:
  92.                 System.out.println("Ничего не выбрано");
  93.             }
  94.         }
  95.         });
  96.    
  97.     //добавление панелей к фрейму  
  98.    add(buttonPanel, BorderLayout.SOUTH);
  99.    add(textPanel, BorderLayout.CENTER);
  100.  
  101.    //Отображение фрейма в середине
  102.    setLocationRelativeTo(null);
  103.    //Завершение программы по закрытию фрейма
  104.    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  105.    }
  106.    
  107.    
  108.     public static void main (String[] args) {
  109.        
  110.         ButtonFrame main = new ButtonFrame();
  111.         main.setVisible(true);
  112.     }
  113.  
  114. }

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


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

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

8   голосов , оценка 3.375 из 5

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

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

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