我想做个计算器,放置按钮的时候,每一次运行下面的代码
按钮的大小都会变,,麻烦高手帮我看下!!!
import java.awt.*;
import javax.swing.*;
import javax.jws.soap.SOAPBinding.Style;
import javax.swing.*;
public class Test extends JFrame{

JTextField jt;
JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9,jb10,jb11,jb12,jb13,jb14,jb15,jb16,jb17,jb18,jb19,jb20;
JPanel jp1;
GridLayout gr11=new GridLayout(4,5,5,5);
Test(){
Container c=getContentPane();
setSize(386,419);
setVisible(true);
setLayout(null);
setResizable(false);
jt=new JTextField("0");
c.add(jt);
jt.setBounds(5, 5, 370, 33);
jt.setHorizontalAlignment(jt.RIGHT);
// jt.setFont(Font f);   设置文本框中的字体
jp1=new JPanel();
jp1.setLayout(null);
c.add(jp1);
jp1.setBounds(5,43,300,300);
jp1.setLayout(gr11);
jb1=new JButton("7");
jp1.add(jb1);
jb2=new JButton("8");
jp1.add(jb2);
jb3=new JButton("9");
jp1.add(jb3);
jb4=new JButton("/");
jp1.add(jb4);
jb5=new JButton("COPY");
jp1.add(jb5);
jb6=new JButton("4");
jp1.add(jb6);
jb7=new JButton("5");
jp1.add(jb7);
jb8=new JButton("6");
jp1.add(jb8);
jb9=new JButton("*");
jp1.add(jb9);
jb10=new JButton("退格");
jp1.add(jb10);
jb11=new JButton("1");
jp1.add(jb11);
jb12=new JButton("2");
jp1.add(jb12);
jb13=new JButton("3");
jp1.add(jb13);
jb14=new JButton("-");
jp1.add(jb14);
jb15=new JButton("清零");
jp1.add(jb15);
jb16=new JButton("0");
jp1.add(jb16);
jb17=new JButton("+/-");
jp1.add(jb17);
jb18=new JButton(".");
jp1.add(jb18);
jb19=new JButton("+");
jp1.add(jb19);
jb20=new JButton("=");
jp1.add(jb20);

}

public static void main(String[] args) {
        new Test();
        
}
}

解决方案 »

  1.   

    用布局管理器来布置界面的话,按钮的大小会根据窗口的大小动态变化的如果你想要让按钮的大小不可变,可以让窗口固定大小,下面是我帮你改的程序
    import java.awt.*;
    import javax.swing.*;
    import javax.jws.soap.SOAPBinding.Style;
    import javax.swing.*;
    public class Test extends JFrame{ JTextField jt;
    JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9,jb10,jb11,jb12,jb13,jb14,jb15,jb16,jb17,jb18,jb19,jb20;
    JPanel jp1;
    GridLayout gr11=new GridLayout(4,5,5,5);

    Test(){
    setLayout(new BorderLayout());
    jt=new JTextField("0");
    add(jt, BorderLayout.NORTH);
    jt.setHorizontalAlignment(jt.RIGHT);
    jp1=new JPanel();
    jp1.setLayout(null);
    jp1.setBounds(5,43,300,300);
    jp1.setLayout(gr11);
    jb1=new JButton("7");
    jp1.add(jb1);
    jb2=new JButton("8");
    jp1.add(jb2);
    jb3=new JButton("9");
    jp1.add(jb3);
    jb4=new JButton("/");
    jp1.add(jb4);
    jb5=new JButton("COPY");
    jp1.add(jb5);
    jb6=new JButton("4");
    jp1.add(jb6);
    jb7=new JButton("5");
    jp1.add(jb7);
    jb8=new JButton("6");
    jp1.add(jb8);
    jb9=new JButton("*");
    jp1.add(jb9);
    jb10=new JButton("退格");
    jp1.add(jb10);
    jb11=new JButton("1");
    jp1.add(jb11);
    jb12=new JButton("2");
    jp1.add(jb12);
    jb13=new JButton("3");
    jp1.add(jb13);
    jb14=new JButton("-");
    jp1.add(jb14);
    jb15=new JButton("清零");
    jp1.add(jb15);
    jb16=new JButton("0");
    jp1.add(jb16);
    jb17=new JButton("+/-");
    jp1.add(jb17);
    jb18=new JButton(".");
    jp1.add(jb18);
    jb19=new JButton("+");
    jp1.add(jb19);
    jb20=new JButton("=");
    jp1.add(jb20);
    add(jp1, BorderLayout.CENTER);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    pack();
    setResizable(false);
    } public static void main(String[] args) {
      new Test();
       
    }
    }
      

  2.   

    你好,你的代码执行后,按钮大小是不会变了!
    可我还是不明白,,你说的“按钮的大小会根据窗口的大小动态变化的”
    可我已经设置了JFrame的大小,setSize(386,419);
    为什么按钮还是会变呢?