【问题标题】:Controls keep disappearing from my JFrame, no JPanes or anything to be painted控件不断从我的 JFrame 中消失,没有 JPanes 或任何要绘制的东西
【发布时间】:2015-09-28 01:57:39
【问题描述】:

这是我的一些代码。应该注意的是,这不是我的确切代码,因为我确实添加了更多代码,但长话短说,我可以保证没有任何控件相互接触,并且它们都添加到此框架中。那我的问题在哪里。应该指出的是,我对此没有丰富的经验,因此需要具体的帮助。我不明白为什么这些会给我带来问题,例如按钮太大且不合适,但我需要它们在我指定的确切大小的确切位置,并且永远不会消失或闪烁。我能做什么?

public class TesterFrame extends JFrame{
    public TesterFrame(){
        setSize(500,500);
        JButton jb = new JButton("Button");
        jb.setLocation(100, 100);
        jb.setSize(20,20);
        JCheckBox jcb = new JCheckBox("CheckBox");
        jcb.setLocation(20,20);
        jcb.setSize(30,30);
        add(jb); add(jcb);
        JButton jb2=new JButton("BUTTON");
        jb2.setLocation(60,60);
        jb2.setSize(30,30);
        add(jb2);
        setVisible(true);
    }
}

【问题讨论】:

  • 你不能在边框布局(默认布局)中放置这样的组件。

标签: java swing jframe jbutton jcheckbox


【解决方案1】:

JFrame 默认使用BorderLayout,这将只允许将单个组件定位在其五个可用插槽中的任何一个。

您基本上是将所有组件添加到BorderLayout.CENTER 位置,但实际上只布置了最后一个。

详情请见How to Use BorderLayout

在开始添加组件之前尝试调用setLayout(new FlowLayout());

查看Laying Out Components Within a Container 了解更多详细信息以及对您有帮助的其他布局管理器列表

【讨论】:

    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多