Кнопки в JPanel не маштабируются под размер JFrame - Java
Формулировка задачи:
Доброго времени суток, в теории вроде как кнопочки должны заполнить весь экран, но не заполняют, и можно как то обойтись без setSize в классе panel_button
package Meny;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
public class Class_Meny
{
public Class_Meny()
{
JFrame window = new JFrame("Welcom");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(640, 480);
window.add(new panel_button());
window.setVisible(true);
}
public class panel_button extends JPanel
{
public panel_button()
{
JPanel meny_button = new JPanel();
meny_button.setLayout(new GridLayout(3, 3));
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
JButton button5 = new JButton("5");
JButton button6 = new JButton("6");
JButton button7 = new JButton("7");
JButton button8 = new JButton("8");
JButton button9 = new JButton("9");
meny_button.add(button1);
meny_button.add(button2);
meny_button.add(button3);
meny_button.add(button4);
meny_button.add(button5);
meny_button.add(button6);
meny_button.add(button7);
meny_button.add(button8);
meny_button.add(button9);
setSize(640, 480);
add(meny_button);
}
}
public static void main(String[] args)
{
new Class_Meny();
}
}Решение задачи: «Кнопки в JPanel не маштабируются под размер JFrame»
textual
Листинг программы
package Meny;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
public class Class_Meny
{
public String button_name[] = {"1","2","3","4","5","6","7","8","9"};
public Class_Meny()
{
JFrame window = new JFrame("Welcom");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.add(new panel_button(), BorderLayout.SOUTH);
window.setSize(640, 480);
window.setVisible(true);
}
public class panel_button extends JPanel
{
public JPanel meny_panel = new JPanel();
public panel_button()
{
meny_panel.setPreferredSize(new Dimension(420, 260));
meny_panel.setLayout(new GridLayout(3, 3, 10, 10));
for (int i = 0; i < button_name.length; i++)
{
JButton button = new JButton(button_name[i]);
button.setFocusable(false);
meny_panel.add(button);
ActionListener actionListener = new ButtonPushActionListener();
button.addActionListener(actionListener);
}
add(meny_panel);
}
private class ButtonPushActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println("SOURCE " + this.toString());
}
}
}
public static void main(String[] args)
{
new Class_Meny();
}
}