小编典典

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

java

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方法似乎不起作用。我要去哪里错了?


阅读 312

收藏
2020-11-26

共1个答案

小编典典

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

现代GUI需要在各种不同的图形环境中运行(甚至在同一OS上),例如,包括不同的DPI,屏幕大小和字体设置。

布局管理器使您不必担心(减少)这些问题,强烈建议您使用它们

看一眼

更多细节

2020-11-26