这是我自己写的一个计算器界面程序,其中用GirdLayout(6,1,10,10)设置列间距与行间距,但是没有作用,设置得再小也是还有间距,这是怎么回事呢?请高手解答,谢谢//这是源程序
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.CardLayout;
/**
*该类实现一个小型计算器(具有结果显示文本框、数字键和加减乘除按钮)的使用界面。
*@1.0版 2009年2月14日
*@author wjy
*/
public class Calculator extends JFrame
{
JLabel label;
JTextField edit;
JPanel pa1,pa2,pa,pa3,pa4,pa5,pa6;
JButton[] btn=new JButton[4];
JButton[] btkey=new JButton[20];
public Calculator(String title)
{
super(title);
this.setBounds(100,100,300,270);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout grid=new GridLayout(6,1,10,10);//间隔怎样调?
this.setLayout(grid);
//第一个面板容器
pa1=new JPanel();
label=new JLabel("计算结果:");
edit=new JTextField(20);
pa1.add(label);
pa1.add(edit);
add(pa1);
//第二个面板容器
pa2=new JPanel();
btn[0]=new JButton("Java");
btn[1]=new JButton("Backspack");
btn[2]=new JButton("CE");
btn[3]=new JButton("C");
for(int i=0;i<4;i++)
{
pa2.add(btn[i]);
}
this.add(pa2);
//第三个面板容器
pa3=new JPanel();
btkey[0]=new JButton(" 7 ");
btkey[1]=new JButton(" 8 ");
btkey[2]=new JButton(" 9 ");
btkey[3]=new JButton(" / ");
btkey[4]=new JButton("sqrt");
for(int i=0;i<5;i++)
{
pa3.add(btkey[i]);
}
add(pa3);
pa4=new JPanel();
btkey[5]=new JButton(" 4 ");
btkey[6]=new JButton(" 5 ");
btkey[7]=new JButton(" 6 ");
btkey[8]=new JButton(" * ");
btkey[9]=new JButton(" % ");
for(int i=5;i<10;i++)
{
pa4.add(btkey[i]);
}
add(pa4);
pa5=new JPanel();
btkey[10]=new JButton(" 1 ");
btkey[11]=new JButton(" 2 ");
btkey[12]=new JButton(" 3 ");
btkey[13]=new JButton(" - ");
btkey[14]=new JButton(" sin ");
for(int i=10;i<15;i++)
{
pa5.add(btkey[i]);
}
add(pa5);
pa6=new JPanel();
btkey[15]=new JButton(" 0 ");
btkey[16]=new JButton("cos");
btkey[17]=new JButton(" . ");
btkey[18]=new JButton(" + ");
btkey[19]=new JButton(" = ");
for(int i=15;i<20;i++)
{
pa6.add(btkey[i]);
}
add(pa6);
show();
}
public static void main(String[] args)
{
Cal cal=new Cal("计算器");
}
}
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.CardLayout;
/**
*该类实现一个小型计算器(具有结果显示文本框、数字键和加减乘除按钮)的使用界面。
*@1.0版 2009年2月14日
*@author wjy
*/
public class Calculator extends JFrame
{
JLabel label;
JTextField edit;
JPanel pa1,pa2,pa,pa3,pa4,pa5,pa6;
JButton[] btn=new JButton[4];
JButton[] btkey=new JButton[20];
public Calculator(String title)
{
super(title);
this.setBounds(100,100,300,270);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout grid=new GridLayout(6,1,10,10);//间隔怎样调?
this.setLayout(grid);
//第一个面板容器
pa1=new JPanel();
label=new JLabel("计算结果:");
edit=new JTextField(20);
pa1.add(label);
pa1.add(edit);
add(pa1);
//第二个面板容器
pa2=new JPanel();
btn[0]=new JButton("Java");
btn[1]=new JButton("Backspack");
btn[2]=new JButton("CE");
btn[3]=new JButton("C");
for(int i=0;i<4;i++)
{
pa2.add(btn[i]);
}
this.add(pa2);
//第三个面板容器
pa3=new JPanel();
btkey[0]=new JButton(" 7 ");
btkey[1]=new JButton(" 8 ");
btkey[2]=new JButton(" 9 ");
btkey[3]=new JButton(" / ");
btkey[4]=new JButton("sqrt");
for(int i=0;i<5;i++)
{
pa3.add(btkey[i]);
}
add(pa3);
pa4=new JPanel();
btkey[5]=new JButton(" 4 ");
btkey[6]=new JButton(" 5 ");
btkey[7]=new JButton(" 6 ");
btkey[8]=new JButton(" * ");
btkey[9]=new JButton(" % ");
for(int i=5;i<10;i++)
{
pa4.add(btkey[i]);
}
add(pa4);
pa5=new JPanel();
btkey[10]=new JButton(" 1 ");
btkey[11]=new JButton(" 2 ");
btkey[12]=new JButton(" 3 ");
btkey[13]=new JButton(" - ");
btkey[14]=new JButton(" sin ");
for(int i=10;i<15;i++)
{
pa5.add(btkey[i]);
}
add(pa5);
pa6=new JPanel();
btkey[15]=new JButton(" 0 ");
btkey[16]=new JButton("cos");
btkey[17]=new JButton(" . ");
btkey[18]=new JButton(" + ");
btkey[19]=new JButton(" = ");
for(int i=15;i<20;i++)
{
pa6.add(btkey[i]);
}
add(pa6);
show();
}
public static void main(String[] args)
{
Cal cal=new Cal("计算器");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货