Кнопки в JPanel не маштабируются под размер JFrame - Java

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

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

Доброго времени суток, в теории вроде как кнопочки должны заполнить весь экран, но не заполняют, и можно как то обойтись без setSize в классе panel_button
Листинг программы
  1. package Meny;
  2. import java.awt.GridLayout;
  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. import javax.swing.JButton;
  6.  
  7. public class Class_Meny
  8. {
  9. public Class_Meny()
  10. {
  11. JFrame window = new JFrame("Welcom");
  12. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13. window.setSize(640, 480);
  14. window.add(new panel_button());
  15. window.setVisible(true);
  16. }
  17.  
  18. public class panel_button extends JPanel
  19. {
  20. public panel_button()
  21. {
  22. JPanel meny_button = new JPanel();
  23. meny_button.setLayout(new GridLayout(3, 3));
  24. JButton button1 = new JButton("1");
  25. JButton button2 = new JButton("2");
  26. JButton button3 = new JButton("3");
  27. JButton button4 = new JButton("4");
  28. JButton button5 = new JButton("5");
  29. JButton button6 = new JButton("6");
  30. JButton button7 = new JButton("7");
  31. JButton button8 = new JButton("8");
  32. JButton button9 = new JButton("9");
  33. meny_button.add(button1);
  34. meny_button.add(button2);
  35. meny_button.add(button3);
  36. meny_button.add(button4);
  37. meny_button.add(button5);
  38. meny_button.add(button6);
  39. meny_button.add(button7);
  40. meny_button.add(button8);
  41. meny_button.add(button9);
  42. setSize(640, 480);
  43. add(meny_button);
  44. }
  45. }
  46.  
  47. public static void main(String[] args)
  48. {
  49. new Class_Meny();
  50. }
  51. }

Решение задачи: «Кнопки в JPanel не маштабируются под размер JFrame»

textual
Листинг программы
  1. package Meny;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Dimension;
  5. import java.awt.GridLayout;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10. import javax.swing.JButton;
  11.  
  12.  
  13.  
  14. public class Class_Meny
  15. {
  16.     public String button_name[] = {"1","2","3","4","5","6","7","8","9"};
  17.    
  18.    
  19.     public Class_Meny()
  20.     {
  21.         JFrame window = new JFrame("Welcom");
  22.         window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23.         window.add(new panel_button(), BorderLayout.SOUTH);
  24.         window.setSize(640, 480);
  25.         window.setVisible(true);
  26.     }
  27.    
  28.    
  29.     public class panel_button extends JPanel
  30.     {
  31.         public JPanel meny_panel = new JPanel();
  32.        
  33.         public panel_button()
  34.         {
  35.            
  36.             meny_panel.setPreferredSize(new Dimension(420, 260));
  37.             meny_panel.setLayout(new GridLayout(3, 3, 10, 10));
  38.            
  39.             for (int i = 0; i < button_name.length; i++)
  40.             {
  41.                 JButton button = new JButton(button_name[i]);
  42.                 button.setFocusable(false);
  43.                 meny_panel.add(button);
  44.                
  45.                 ActionListener actionListener = new ButtonPushActionListener();
  46.                 button.addActionListener(actionListener);
  47.             }
  48.            
  49.             add(meny_panel);
  50.         }
  51.        
  52.        
  53.         private class ButtonPushActionListener implements ActionListener
  54.         {
  55.             public void actionPerformed(ActionEvent e)
  56.             {
  57.                 System.out.println("SOURCE " + this.toString());
  58.             }
  59.         }
  60.     }
  61.    
  62.    
  63.     public static void main(String[] args)
  64.     {
  65.         new Class_Meny();
  66.     }
  67. }

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


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

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

6   голосов , оценка 3.667 из 5

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

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

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