JComboBox - Java (241489)

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

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

Нужно чтобы после того, как выбираю определенный пункт в списке JCobmoBox, в фрейме появились соответствующие этому пункту JLabel, JTextField и др. Я не знаю, как это сделать, так как изучаю Java самостоятельно.
Листинг программы
  1. import javax.swing.*;
  2. import javax.swing.border.Border;
  3. import java.awt.*;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.awt.event.WindowEvent;
  7. import java.awt.event.WindowListener;
  8.  
  9. public class GraphInterface extends JFrame {
  10. JPanel window = new JPanel();
  11. JLabel descriptionLabel = new JLabel("Калькулятор материала для стены или потолка с гипсокартона");
  12. JLabel surfaceLabel = new JLabel("1. Поверхность, которую нужно обшить");
  13. JLabel frameLabel = new JLabel("2. Тип каркаса");
  14. JLabel widthWallLabel = new JLabel("3. Ширина стены");
  15. JLabel meterLabel = new JLabel("м.");
  16. JLabel linearMeterLabel = new JLabel("пог.м.");
  17. JLabel heightWallLabel = new JLabel("4. Высота стены");
  18. JLabel widthRoofLabel = new JLabel("3. Ширина потолка");
  19. JLabel lengthRoofLabel = new JLabel("4. Длина потолка");
  20. JTextField widthWallField = new JTextField();
  21. JTextField heightWallField = new JTextField();
  22. JTextField widthRoofField = new JTextField();
  23. JTextField lengthRoofField = new JTextField();
  24. String surface[] = {"Стена", "Потолок"};
  25. JComboBox comboBoxSurface = new JComboBox (surface);
  26. String typeFrame[] = {"Металлический", "Деревянный"};
  27. JComboBox comboBoxTypeFrame = new JComboBox(typeFrame);
  28.  
  29. Font fontDescription = new Font("Monospased", Font.BOLD, 25);
  30. Font fontRequired = new Font("Monospased", Font.PLAIN, 15);
  31. Font fontCondition = new Font("Monospased", Font.PLAIN, 18);
  32.  
  33. Border borderCondition = BorderFactory.createLineBorder(Color.BLACK, 1);
  34.  
  35. GraphInterface() {
  36. window.setLayout(null);
  37.  
  38. descriptionLabel.setSize(1000, 30);
  39. descriptionLabel.setLocation(0, 5);
  40. descriptionLabel.setFont(fontDescription);
  41. descriptionLabel.setForeground(Color.BLUE);
  42. descriptionLabel.setHorizontalAlignment(SwingConstants.CENTER);
  43. window.add(descriptionLabel);
  44. surfaceLabel.setSize(300, 25);
  45. surfaceLabel.setLocation(50, 80);
  46. surfaceLabel.setFont(fontCondition);
  47. surfaceLabel.setBorder(borderCondition);
  48. window.add(surfaceLabel);
  49. comboBoxSurface.setSize(150, 25);
  50. comboBoxSurface.setLocation(360, 80);
  51. comboBoxSurface.setFont(fontCondition);
  52. comboBoxSurface.setSelectedIndex(-1);
  53. window.add(comboBoxSurface);
  54. frameLabel.setSize(300, 25);
  55. frameLabel.setLocation(50, 110);
  56. frameLabel.setFont(fontCondition);
  57. frameLabel.setBorder(borderCondition);
  58. window.add(frameLabel);
  59. comboBoxTypeFrame.setSize(150, 25);
  60. comboBoxTypeFrame.setLocation(360, 110);
  61. comboBoxTypeFrame.setFont(fontCondition);
  62. comboBoxTypeFrame.setSelectedIndex(-1);
  63. window.add(comboBoxTypeFrame);
  64.  
  65. // этот код нужно выполнять, если пользователь выбрал "Стена":
  66. // widthWallLabel.setSize(300, 25);
  67. // widthWallLabel.setLocation(50, 140);
  68. // widthWallLabel.setFont(fontCondition);
  69. // widthWallLabel.setBorder(borderCondition);
  70. // window.add(widthWallLabel);
  71. // heightWallLabel.setSize(300, 25);
  72. // heightWallLabel.setLocation(50, 170);
  73. // heightWallLabel.setFont(fontCondition);
  74. // heightWallLabel.setBorder(borderCondition);
  75. // window.add(heightWallLabel);
  76. // а этот код нужно выполнять, если пользователь выбрал "Потолок":
  77. // widthRoofLabel.setSize(300, 25);
  78. // widthRoofLabel.setLocation(50, 140);
  79. // widthRoofLabel.setFont(fontCondition);
  80. // widthRoofLabel.setBorder(borderCondition);
  81. // window.add(widthRoofLabel);
  82. // lengthRoofLabel.setSize(300, 25);
  83. // lengthRoofLabel.setLocation(50, 170);
  84. // lengthRoofLabel.setFont(fontCondition);
  85. // lengthRoofLabel.setBorder(borderCondition);
  86. // window.add(lengthRoofLabel);
  87.  
  88. JFrame frame = new JFrame();
  89. frame.setContentPane(window);
  90. frame.setSize(1000, 950);
  91. frame.setLocationRelativeTo(null);
  92. frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  93. frame.setResizable(false);
  94.  
  95. frame.addWindowListener(new
  96. WindowListener() {
  97. public void windowActivated(WindowEvent event) {
  98. }
  99. @Override
  100. public void windowDeactivated(WindowEvent e) {
  101. }
  102. public void windowClosed(WindowEvent event) {
  103. }
  104. @Override
  105. public void windowIconified(WindowEvent e) {
  106. }
  107. @Override
  108. public void windowDeiconified(WindowEvent e) {
  109. }
  110. @Override
  111. public void windowOpened(WindowEvent e) {
  112. }
  113. public void windowClosing(WindowEvent event) {
  114. Object[] options = {"Да", "Нет"};
  115. int n = JOptionPane
  116. .showOptionDialog(event.getWindow(), "Выйти с программы?",
  117. "Confirm Exit", JOptionPane.YES_NO_OPTION,
  118. JOptionPane.QUESTION_MESSAGE, null, options,
  119. options[0]);
  120. if (n == 0) {
  121. event.getWindow().setVisible(false);
  122. System.exit(0);
  123. }
  124. }
  125. });
  126.  
  127. frame.setVisible(true);
  128.  
  129. }
  130. public static void main(String[] args) {
  131. GraphInterface gi = new GraphInterface();
  132. }
  133. }

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

textual
Листинг программы
  1.                widthWallLabel.setSize(300, 25);
  2.                         widthWallLabel.setLocation(50, 140);
  3.                         widthWallLabel.setFont(fontCondition);
  4.                         widthWallLabel.setBorder(borderCondition);
  5.                         window.add(widthWallLabel);
  6.  
  7.                         heightWallLabel.setSize(300, 25);
  8.                         heightWallLabel.setLocation(50, 170);
  9.                         heightWallLabel.setFont(fontCondition);
  10.                         heightWallLabel.setBorder(borderCondition);
  11.                         window.add(heightWallLabel);
  12.  
  13.                         widthRoofLabel.setSize(300, 25);
  14.                         widthRoofLabel.setLocation(50, 140);
  15.                         widthRoofLabel.setFont(fontCondition);
  16.                         widthRoofLabel.setBorder(borderCondition);
  17.                         window.add(widthRoofLabel);
  18.  
  19.                         lengthRoofLabel.setSize(300, 25);
  20.                         lengthRoofLabel.setLocation(50, 170);
  21.                         lengthRoofLabel.setFont(fontCondition);
  22.                         lengthRoofLabel.setBorder(borderCondition);
  23.                         window.add(lengthRoofLabel);

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


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

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

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

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

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

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