简体   繁体   English

Java大小调整JPanel和JPanel组件

[英]Java Sizing JPanel & JPanel Components

I'm trying to build a GUI in Java Swing. 我正在尝试在Java Swing中构建GUI。 I have alot of trouble sizing components. 我在调整组件大小方面有很多麻烦。 I managed to size a JPanel by setting the dimensions with setPreferredSize() , but I can't get the components within that JPanel to size properly. 我通过使用setPreferredSize()设置尺寸来设法调整JPanel的大小,但是无法正确调整该JPanel中的组件的大小。

This is my screen with only the JPanel visible. 这是我的屏幕,只有JPanel可见。

在此处输入图片说明

When I add the button to my JPanel the following happens: 当我将按钮添加到我的JPanel时,会发生以下情况:

在此处输入图片说明

As you can see the button is taking up the whole lenght and width of my JPanel/JFrame. 如您所见,该按钮占用了我的JPanel / JFrame的整个长度和宽度。 Why is this happening? 为什么会这样呢? How can I fix it? 我该如何解决?

Here is my code: 这是我的代码:

Application.java Application.java

public void start() {
    ControllerObserveer observeer = new ControllerObserveer();

    frame = new JFrame("-");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    frame.setLayout(new BorderLayout());
    frame.add(observeer.getView(), BorderLayout.CENTER);
    frame.setResizable(false);
}

ControllerObserveer.java ControllerObserveer.java

public class ControllerObserveer {
    private ModelObserveer model;
    private ViewObserveer view; 

    public JPanel getView(){
        return this.view.p;
    }
}

ViewObserveer.java ViewObserveer.java

public class ViewObserveer {

    public JPanel p;

    public ViewObserveer(){
        this.p = new JPanel(new BorderLayout(), false);
        p.setPreferredSize(new Dimension(500, 500));
        p.setBackground(Color.red);

        JButton b = new JButton("Hello World!");
        b.setPreferredSize(new Dimension(40, 40));

        p.add(b);

    }
}

At last I would like to ask what the diffrences are between the diffrent layouts, like BorderLayout() or BoxLayout() for example. 最后,我想问一下不同布局之间的区别是什么,例如BorderLayout()BoxLayout()

Thank you for your time! 感谢您的时间!

Install Java WindowBuilder on Eclipse. 在Eclipse上安装Java WindowBuilder。 So, you can get things done.. "but I can't get the components within that JPanel to size properly." 因此,您可以完成工作。“但是我无法正确调整该JPanel中的组件大小。”

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM