gpt4 book ai didi

java - GUI,在面板内排列按钮

转载 作者:行者123 更新时间:2023-12-01 07:28:47 36 4
gpt4 key购买 nike

如何正确显示按钮?

这是我的代码:

import javax.swing.*;
import java.awt.*;
public class cal extends JFrame

{

private JLabel monthnym, monnym,tuesnym,wednym,thunym,frinym,satnym,sunnym;
private JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,
b19,b20,b21,b22,b23,b24,b25,b26,b27,b28,b29,b30;
private JPanel panel1, panel2, panel3,panel4;
public cal()
{
super("November");
Container c = getContentPane();

c.setLayout(new GridLayout(7,5));
panel1=new JPanel(new GridLayout(1,0));
monthnym=new JLabel("November 2013");
panel1.add(monthnym);

panel2=new JPanel(new GridLayout(1,7,2,2));
sunnym=new JLabel("SUN");
monnym=new JLabel("MON");
tuesnym=new JLabel("TUE");
wednym=new JLabel("WED");
thunym=new JLabel("THU");
frinym=new JLabel("FRI");
satnym=new JLabel("SAT");
panel2.add(sunnym);
panel2.add(monnym);
panel2.add(tuesnym);
panel2.add(wednym);
panel2.add(thunym);
panel2.add(frinym);
panel2.add(satnym);

panel3=new JPanel(new GridLayout(5,7,3,3));
b1=new JButton("1");
b2=new JButton("2");
b3=new JButton("3");
b4=new JButton("4");
b5=new JButton("5");

panel3.add(b1);
panel3.add(b2);
panel3.add(b3);
panel3.add(b4);
panel3.add(b5);



//panel4=new JPanel(new GridLayout(4,7,5,5));
c.add(panel1);
c.add(panel2);
c.add(panel3);
//c.add(panel4);
setSize(500,500);
show();
}








public static void main(String[] args) {

cal app = new cal();

}

}

我多次编辑代码,但没有成功。 我认为 (x,y) 中有一些东西,但我没有任何改变。

这些按钮是 30 个,我将其减少到 5 个,因为我在发布此问题时出错

最佳答案

本质上,GridLayout正在为其认为需要的内容保留空间,但由于它想要的区域比您提供的区域大,所以它会挤压所有内容。

如果我将内容 Pane 的布局管理器从 c.setLayout(new GridLayout(7, 5)); 更改为至c.setLayout(new BorderLayout());我明白了...

enter image description here

我的第一个建议是使用更好的布局。您已经将代码分解为单独的组件,这是一个好的开始,您可以为每个部分使用不同的布局管理器来生成更好的布局。

您可能需要考虑将您的 UI 放入 JScrollPane如果它根本不适合(合理的)屏幕......

您还应该使用JFrame#pack调整主框架的大小而不是 setSize在可能的情况下。

看看A Visual Guide to Layout Managers一些想法。

接下来,我建议您生成一个自定义组件来维护基本内容,以便您可以重复使用。

我还鼓励您查看Initial Threads并确保您的 UI 是在事件调度线程的上下文中构建的,以防止可能出现的问题。

我还鼓励您将按钮放入数组或 List 中某种形式,而不是创建 30 个命名变量...恕我直言

关于java - GUI,在面板内排列按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089494/

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