JComboBox - Java (241489)

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

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

Нужно чтобы после того, как выбираю определенный пункт в списке JCobmoBox, в фрейме появились соответствующие этому пункту JLabel, JTextField и др. Я не знаю, как это сделать, так как изучаю Java самостоятельно.
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class GraphInterface extends JFrame {
    JPanel window = new JPanel();
    JLabel descriptionLabel = new JLabel("Калькулятор материала для стены или потолка с гипсокартона");
  
    JLabel surfaceLabel = new JLabel("1. Поверхность, которую нужно обшить");
    JLabel frameLabel = new JLabel("2. Тип каркаса");
    JLabel widthWallLabel = new JLabel("3. Ширина стены");
    JLabel meterLabel = new JLabel("м.");
    JLabel linearMeterLabel = new JLabel("пог.м.");
    JLabel heightWallLabel = new JLabel("4. Высота стены");
    JLabel widthRoofLabel = new JLabel("3. Ширина потолка");
    JLabel lengthRoofLabel = new JLabel("4. Длина потолка");
    JTextField widthWallField = new JTextField();
    JTextField heightWallField = new JTextField();
    JTextField widthRoofField = new JTextField();
    JTextField lengthRoofField = new JTextField();
 
    String surface[] = {"Стена", "Потолок"};
    JComboBox comboBoxSurface = new JComboBox (surface);
 
    String typeFrame[] = {"Металлический", "Деревянный"};
    JComboBox comboBoxTypeFrame = new JComboBox(typeFrame);

    Font fontDescription = new Font("Monospased", Font.BOLD, 25);
    Font fontRequired = new Font("Monospased", Font.PLAIN, 15);
    Font fontCondition = new Font("Monospased", Font.PLAIN, 18);

    Border borderCondition = BorderFactory.createLineBorder(Color.BLACK, 1);

    GraphInterface() {
        window.setLayout(null);

        descriptionLabel.setSize(1000, 30);
        descriptionLabel.setLocation(0, 5);
        descriptionLabel.setFont(fontDescription);
        descriptionLabel.setForeground(Color.BLUE);
        descriptionLabel.setHorizontalAlignment(SwingConstants.CENTER);
        window.add(descriptionLabel);
 
        surfaceLabel.setSize(300, 25);
        surfaceLabel.setLocation(50, 80);
        surfaceLabel.setFont(fontCondition);
        surfaceLabel.setBorder(borderCondition);
        window.add(surfaceLabel);
 
        comboBoxSurface.setSize(150, 25);
        comboBoxSurface.setLocation(360, 80);
        comboBoxSurface.setFont(fontCondition);
        comboBoxSurface.setSelectedIndex(-1);
        window.add(comboBoxSurface);
 
        frameLabel.setSize(300, 25);
        frameLabel.setLocation(50, 110);
        frameLabel.setFont(fontCondition);
        frameLabel.setBorder(borderCondition);
        window.add(frameLabel);
 
        comboBoxTypeFrame.setSize(150, 25);
        comboBoxTypeFrame.setLocation(360, 110);
        comboBoxTypeFrame.setFont(fontCondition);
        comboBoxTypeFrame.setSelectedIndex(-1);
        window.add(comboBoxTypeFrame);

// этот код нужно выполнять, если пользователь выбрал "Стена":
       
            // widthWallLabel.setSize(300, 25);
          //  widthWallLabel.setLocation(50, 140);
          //  widthWallLabel.setFont(fontCondition);
           // widthWallLabel.setBorder(borderCondition);
          //  window.add(widthWallLabel);
 
         //   heightWallLabel.setSize(300, 25);
           // heightWallLabel.setLocation(50, 170);
         //   heightWallLabel.setFont(fontCondition);
         //   heightWallLabel.setBorder(borderCondition);
         //   window.add(heightWallLabel);
 
       // а этот код нужно выполнять, если пользователь выбрал "Потолок":
 
        //    widthRoofLabel.setSize(300, 25);
         //   widthRoofLabel.setLocation(50, 140);
        //    widthRoofLabel.setFont(fontCondition);
        //    widthRoofLabel.setBorder(borderCondition);
        //    window.add(widthRoofLabel);
 
         //   lengthRoofLabel.setSize(300, 25);
         //   lengthRoofLabel.setLocation(50, 170);
        //    lengthRoofLabel.setFont(fontCondition);
        //    lengthRoofLabel.setBorder(borderCondition);
        //    window.add(lengthRoofLabel);

        JFrame frame = new JFrame();
        frame.setContentPane(window);
        frame.setSize(1000, 950);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        frame.setResizable(false);

        frame.addWindowListener(new
 
                                        WindowListener() {
 
                                            public void windowActivated(WindowEvent event) {
 
                                            }
 
                                            @Override
                                            public void windowDeactivated(WindowEvent e) {
 
                                            }
 
                                            public void windowClosed(WindowEvent event) {
 
                                            }
 
                                            @Override
                                            public void windowIconified(WindowEvent e) {
 
                                            }
 
                                            @Override
                                            public void windowDeiconified(WindowEvent e) {
 
                                            }
 
                                            @Override
                                            public void windowOpened(WindowEvent e) {
 
                                            }
 
                                            public void windowClosing(WindowEvent event) {
                                                Object[] options = {"Да", "Нет"};
                                                int n = JOptionPane
                                                        .showOptionDialog(event.getWindow(), "Выйти с программы?",
                                                                "Confirm Exit", JOptionPane.YES_NO_OPTION,
                                                                JOptionPane.QUESTION_MESSAGE, null, options,
                                                                options[0]);
                                                if (n == 0) {
                                                    event.getWindow().setVisible(false);
                                                    System.exit(0);
                                                }
                                            }
                                        });

        frame.setVisible(true);

    }
 
    public static void main(String[] args) {
        GraphInterface gi = new GraphInterface();
    }
 
}

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

textual
Листинг программы
               widthWallLabel.setSize(300, 25);
                        widthWallLabel.setLocation(50, 140);
                        widthWallLabel.setFont(fontCondition);
                        widthWallLabel.setBorder(borderCondition);
                        window.add(widthWallLabel);
 
                        heightWallLabel.setSize(300, 25);
                        heightWallLabel.setLocation(50, 170);
                        heightWallLabel.setFont(fontCondition);
                        heightWallLabel.setBorder(borderCondition);
                        window.add(heightWallLabel);
 
                        widthRoofLabel.setSize(300, 25);
                        widthRoofLabel.setLocation(50, 140);
                        widthRoofLabel.setFont(fontCondition);
                        widthRoofLabel.setBorder(borderCondition);
                        window.add(widthRoofLabel);
 
                        lengthRoofLabel.setSize(300, 25);
                        lengthRoofLabel.setLocation(50, 170);
                        lengthRoofLabel.setFont(fontCondition);
                        lengthRoofLabel.setBorder(borderCondition);
                        window.add(lengthRoofLabel);

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


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

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

10   голосов , оценка 3.9 из 5