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);
    }
 
}

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


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

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

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