import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class MyJsq extends JFrame
{
JTextField t=new JTextField(20); //定义一个输入框
JPanel buttonPanel=new JPanel(null); //定义一个JPanel 初始值为空
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdian,bjia,bjian,bchen,bchu,bdeng,bce;
public MyJsq()
{
super();
init();
}
public void init()
{
this.setLayout(new BorderLayout());
this.add(t,BorderLayout.NORTH); //把输入框放到BorderLayout的上边
this.add(getPanel(),BorderLayout.CENTER); //把一个做好的JPanel放到BorderLayout的中间
this.setSize(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
this.setVisible(true);
}
private JPanel getPanel()
{
if(buttonPanel==null)
{
buttonPanel=new JPanel();
buttonPanel.setLayout(new GridLayout(4,4));
b1=new JButton("1");
b2=new JButton("2");
b3=new JButton("3");
b4=new JButton("4");
b5=new JButton("5");
b6=new JButton("6");
b7=new JButton("7");
b8=new JButton("8");
b9=new JButton("9");
b0=new JButton("0");
bdian=new JButton(".");
bjia=new JButton("+");
bchu=new JButton("/");
bchen=new JButton("*");
bdeng=new JButton("=");
bjian=new JButton("-");
bce=new JButton("CE");
buttonPanel.add(b7);
buttonPanel.add(b8);
buttonPanel.add(b9);
buttonPanel.add(bjia);
buttonPanel.add(b4);
buttonPanel.add(b5);
buttonPanel.add(b6);
buttonPanel.add(bjian);
buttonPanel.add(b1);
buttonPanel.add(b2);
buttonPanel.add(b3);
buttonPanel.add(bchen);
buttonPanel.add(b0);
buttonPanel.add(bce);
buttonPanel.add(bdeng);
buttonPanel.add(bjia);
}
return buttonPanel;
}
public static void main(String[] args)
{
new MyJsq();
}
}
可你的buttonpanel不是空啊。自然面板上什么都没有了。
import java.awt.*;
import java.awt.event.*;public class MyJsq extends JFrame
{
JTextField t=new JTextField(20); //定义一个输入框
JPanel buttonPanel=new JPanel(null); //定义一个JPanel 初始值为空
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdian,bjia,bjian,bchen,bchu,bdeng,bce;
public MyJsq()
{
super();
init();
}
public void init()
{
this.setLayout(new BorderLayout());
this.add(t,BorderLayout.NORTH); //把输入框放到BorderLayout的上边
this.add(getPanel(),BorderLayout.CENTER); //把一个做好的JPanel放到BorderLayout的中间
this.setSize(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
this.setVisible(true);
}
private JPanel getPanel()
{
buttonPanel=new JPanel();
buttonPanel.setLayout(new GridLayout(4,4));
b1=new JButton("1");
b2=new JButton("2");
b3=new JButton("3");
b4=new JButton("4");
b5=new JButton("5");
b6=new JButton("6");
b7=new JButton("7");
b8=new JButton("8");
b9=new JButton("9");
b0=new JButton("0");
bdian=new JButton(".");
bjia=new JButton("+");
bchu=new JButton("/");
bchen=new JButton("*");
bdeng=new JButton("=");
bjian=new JButton("-");
bce=new JButton("CE"); buttonPanel.add(b7);
buttonPanel.add(b8);
buttonPanel.add(b9);
buttonPanel.add(bjia);
buttonPanel.add(b4);
buttonPanel.add(b5);
buttonPanel.add(b6);
buttonPanel.add(bjian);
buttonPanel.add(b1);
buttonPanel.add(b2);
buttonPanel.add(b3);
buttonPanel.add(bchen);
buttonPanel.add(b0);
buttonPanel.add(bce);
buttonPanel.add(bdeng);
buttonPanel.add(bdian);
buttonPanel.add(bchu);
return buttonPanel;
}
public static void main(String[] args)
{
new MyJsq();
}
} 这是我改过的
我定义的GridLayout是4x4
但是显示的是4X5
buttonPanel.add(b8);
buttonPanel.add(b9);
buttonPanel.add(bjia);
buttonPanel.add(b4);
buttonPanel.add(b5);
buttonPanel.add(b6);
buttonPanel.add(bjian);
buttonPanel.add(b1);
buttonPanel.add(b2);
buttonPanel.add(b3);
buttonPanel.add(bchen);
buttonPanel.add(b0);
buttonPanel.add(bce);
buttonPanel.add(bdeng);
buttonPanel.add(bdian);
buttonPanel.add(bchu);
return buttonPanel; 你看你添加的 17个加上去了!~但是你创建了才16个 最后一个没有地方放 所以把按钮挤上去了!所以每行5个了!~
import java.awt.*;
import java.awt.event.*;public class MyJsq extends JFrame
{
JTextField t=new JTextField(20); //定义一个输入框
JPanel buttonPanel=null; //定义一个JPanel 初始值为空
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdian,bjia,bjian,bchen,bchu,bdeng,bce;
public MyJsq()
{
super();
init();
}
public void init()
{
this.setLayout(new BorderLayout());
this.add(t,BorderLayout.NORTH); //把输入框放到BorderLayout的上边
this.add(getPanel(),BorderLayout.CENTER); //把一个做好的JPanel放到BorderLayout的中间
this.setSize(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
this.setVisible(true);
}
private JPanel getPanel()
{
if(buttonPanel==null)
{
buttonPanel=new JPanel();
buttonPanel.setLayout(new GridLayout(4,4));
b1=new JButton("1");
b2=new JButton("2");
b3=new JButton("3");
b4=new JButton("4");
b5=new JButton("5");
b6=new JButton("6");
b7=new JButton("7");
b8=new JButton("8");
b9=new JButton("9");
b0=new JButton("0");
bdian=new JButton(".");
bjia=new JButton("+");
bchu=new JButton("/");
bchen=new JButton("*");
bdeng=new JButton("=");
bjian=new JButton("-");
bce=new JButton("CE");
buttonPanel.add(b7);
buttonPanel.add(b8);
buttonPanel.add(b9);
buttonPanel.add(bjia);
buttonPanel.add(b4);
buttonPanel.add(b5);
buttonPanel.add(b6);
buttonPanel.add(bjian);
buttonPanel.add(b1);
buttonPanel.add(b2);
buttonPanel.add(b3);
buttonPanel.add(bchen);
buttonPanel.add(b0);
buttonPanel.add(bce);
buttonPanel.add(bdeng);
buttonPanel.add(bjia);
}
return buttonPanel;
}
public static void main(String[] args)
{
new MyJsq();
}
}