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

Java JFrame绝对定位-使用ContentPane作为位置参考,java,swing,Java,Swing,使用setLayout(null),我可以告诉我的组件处于例如x5和y60的位置。但是,这将引用窗口的x和y位置,包括边框 我能告诉我的组件0,0是contentPane的左上角(可见)吗 这尤其令人讨厌,因为不同的操作系统有不同大小的窗口边框 初始化JFrame的代码: JFrameAdd addFrame; addFrame = new JFrameAdd(); addFrame.setVisible(true); addFrame.setTitle("Vokabeltrainer"); a

使用
setLayout(null)
,我可以告诉我的组件处于例如x5和y60的位置。但是,这将引用窗口的x和y位置,包括边框

我能告诉我的组件
0,0
contentPane
的左上角(可见)吗

这尤其令人讨厌,因为不同的操作系统有不同大小的窗口边框

初始化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);
所有的代码都在这里:是的,我知道我不应该同时运行两个
JFrame
s,但是更改它会把事情搞砸,我没有时间更改ATM

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

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

我能告诉我的组件0,0是contentPane的左上角(可见)吗

这是默认行为

如果您认为您的应用程序表现出不同的行为,那么请在文章中说明问题所在


一般规则是不要使用空布局。让布局管理器来担心组件的定位。

现在做一些测试,所花费的时间比我想象的要长。有一件事似乎很不对劲,Eclipse的WindowBuilder将我的按钮显示在可见区域之外(),而Windows 8将其放置在可见区域之外()我手动更改了位置,使其与Windows 8的布局对齐it:在Mac上:EDIT2:将设置边界(100100825585)更改为设置边界(10010082555)也没有好处:您推荐哪种布局管理器仍然可以让您将所有组件放在相对准确的位置,并且不需要花费很长时间才能从空布局转换为空布局?我从不只使用一个布局管理器。我根据需要使用不同的布局管理器或布局管理器的组合。阅读关于[Layout Manager](布局管理器)的教程,了解基础知识和工作示例。不要发布图片,发布代码,这是
SSCCE
的要点。我们需要查看代码,看看您是否做错了什么,然后我们可能会提出建议。将代码与您的问题一起发布。您可以编辑问题。@Skilly缺少的链接。这不是
SSCCE
,我们无法编译和执行该代码。您希望得到什么结果?框架内
x=50
y=60
处的按钮?@user1803551否,一个通用内容窗格(在Mac OSX上与Windows 8大小相同),是一个给定的。那么问题是什么?对我来说不是:vs如果窗口底部的边框在Windows中被算作contentpane,我将如何仅为OSX降低contentpane的高度以使Windows和OSX具有类似的GUI?