gpt4 book ai didi

java - setSize 函数造成困惑

转载 作者:行者123 更新时间:2023-12-01 18:30:19 25 4
gpt4 key购买 nike

这段代码运行得很好。但是,当我输入 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com