java - setSize 函数造成困惑

标签 java swing jframe

这段代码运行得很好。但是,当我输入 setSize(700,700) 并运行代码时,它不会显示 JButton,而只显示框架。我认为 JButton 的网格布局可能存在一些问题,因此我将每个网格布局的最后两个条目更改为 GridLayout(3,1,300,300)。但是,结果是相同的(即没有 JButton 可见)。为什么会发生这种情况?

import java.awt.*;
import javax.swing.*;
public class Calculator extends JFrame
{
    JButton jb[]=new JButton[12];
    public Calculator(String title)
    {
    super(title);
    Container c;
    c=getContentPane();
    setSize(100,100);
    setVisible(true);
    Panel p1=new Panel();
    for(int h=0;h<9;h++)
    {jb[h]=new JButton(""+(h+1));}
    jb[9]=new JButton("=");
    jb[10]=new JButton(".");
    jb[11]=new JButton("0");
    p1.setLayout(new GridLayout(4,3,3,3));
    for(int h=0;h<12;h++){p1.add(jb[h]);}

    Panel p2=new Panel(new GridLayout(3,1,3,3));
    JButton jb1[]=new JButton[3];
    jb1[0]=new JButton("+");
    jb1[1]=new JButton("-");
    jb1[2]=new JButton("*");
    for(int i=0;i<3;i++){
    p2.add(jb1[i]);}


    Panel p4=new Panel(new GridLayout(3,1,3,3));
    JButton jb4[]=new JButton[3];
     jb4[0]=new JButton("%");
     jb4[1]=new JButton("/");
    jb4[2]=new JButton("-");
    for(int i=0;i<3;i++){
    p4.add(jb4[i]);}

    Panel p3=new Panel();
    JLabel jl0=new JLabel("INPUT:");
    TextField tf=new TextField(30);
    p3.add(tf);
    p3.add(jl0);    
    jl0.setLayout(new FlowLayout(FlowLayout.LEFT));

    c.add(BorderLayout.CENTER,p1);
    c.add(BorderLayout.EAST,p2);
    c.add(BorderLayout.WEST,p4);
    c.add(BorderLayout.NORTH,p3);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    public static void main(String args[])
    {new Calculator("Lets calculate ! :)");}
    }

最佳答案

您正在使用 setSize(100, 100); 创建一个非常小的窗口。相反,请在构造函数末尾使用 pack(); 以使框架适合面板。

关于java - setSize 函数造成困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508527/

相关文章:

java - JTable 中的 JComboBox 不显示选择

java - 如何在JFrame的标题栏中添加图片图标?

java - JFrame DO_NOTHING_ON_CLOSE 不适用于 Command + Q

java - 使用 Javamail Api 一封一封地获取电子邮件

java -\xef\xbb\xbf 来自 utf8 文件 java

java - 如何在 JTextPane 中插入 html 特殊字符

java - 我的 JMenuBar 未显示

java - 改变jframe的亮度

java - Guice 如何将带注释的常量重新绑定(bind)到另一个名称?

java - JFreeChart 在缩放时自动调整大小