JFrame绝对定位 - 使用ContentPane作为位置参考

时间:2015-04-28 19:08:15

标签: java swing

使用setLayout(null),我可以告诉我的组件是x 5和y 60.但是,这引用了窗口的x和y位置,包括边界。

我可以以某种方式告诉我的组件0,0contentPane的左上角(可见)吗?

由于不同的操作系统具有不同大小的窗口边框,因此特别烦人。

初始化JFrame的代码:

JFrameAdd addFrame;
addFrame = new JFrameAdd();
addFrame.setVisible(true);
addFrame.setTitle("Vokabeltrainer");
addFrame.setResizable(false);
addFrame.setLocationRelativeTo(null);
addFrame.setBounds(100, 100, 825, 585);
addFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

在JFrameAdd.java中:

JButton btnNewButton = new JButton(new ImageIcon(settingsIcon));
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            JFrameGenerated.settingsFrame.setVisible(true);
        }
    });
    btnNewButton.setBounds(0, 510, 36, 36);       
    contentPane.add(btnNewButton);

所有代码都在这里:https://github.com/MisterSkilly/Vokabeltrainer/tree/LoadSave/Latein%20asterisk/src是的,我知道我不应该同时运行两个JFrame,但是改变那些搞砸了,我没有时间去改变那台ATM。

1 个答案:

答案 0 :(得分:0)

  

但是,这引用了窗口的x和y位置,包括边框

不,它引用了内容窗格,其中不包含标题栏和边框。

  

我可以以某种方式告诉我的组件0,0是contentPane的左上角(可见)吗?

这是默认行为。

如果您认为自己的申请表现不同,请发布展示问题的SSCCE

一般规则是DON使用空布局。让布局管理员担心定位组件。