JButton.setBounds(x,y,w,h) 似乎不起作用

问题描述 投票:0回答:3
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class SimpleExample extends JFrame {

    public SimpleExample() {

        setTitle("Simple example");
        setSize(500, 500);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JButton jb = new JButton("TEST");
        jb.setBorderPainted(true);
        jb.setBounds(5, 5, 1, 1); ---> This line
        add(jb);

    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                SimpleExample ex = new SimpleExample();
                ex.setVisible(true);
            }
        });
    }
}

只需创建一个首选尺寸的简单按钮。

setBounds
的方法似乎不起作用。我哪里错了?

java swing jbutton layout-manager
3个回答
5
投票

您的框架受布局管理器的控制,它正在决定如何最好地布局您的组件,并覆盖您使用

setBounds

指定的值

现代 GUI 需要在各种不同的图形环境中运行(即使在同一操作系统上),包括不同的 DPI、屏幕尺寸和字体设置。

布局管理器可以让您(更少)担心这些问题,强烈建议您使用它们

看一下

了解更多详情


0
投票

作为一个好的做法,您不应将按钮直接添加到

JFrame
。相反,将
JPanel
添加到框架,将面板的布局设置为
null
,然后将
JButton
添加到
JPanel


0
投票

您需要使用:

this.setLayout(null);

要停止 JFrame,请使用默认布局来覆盖您的布局。

© www.soinside.com 2019 - 2024. All rights reserved.