0
所以我有一个java JFrame,我把一个画布放进去,它出现在错误的坐标上,好像它把0,0作为左下角,而不是左上角。这是我的代码。Java窗口坐标错误
JFrame frame = new JFrame("Test");
frame.setSize(800,600);
frame.setLayout(null);
frame.setResizable(false);
final Canvas canvas = new Canvas();
canvas.setBounds(0, 0, 500, 700);
canvas.setFocusable(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.add(canvas);
frame.setVisible(true);
为什么不使用传统的窗口坐标(如0,0是左上角)?
交换500和700 - 画布比当前窗口大。 – Njol
认真,这是那么简单? * facepalm *谢谢 – DuskFall
不同系统上的边框装饰插页可能会有所不同,这意味着尽管您可能能够“猜测”系统中可视区域的大小,但它会在不同的系统上发生变化。最好使用适当的布局管理器,如BorderLayout,以便能够更恰当地响应这些解决方案。正确使用getPreferredSize和pack将会产生更好的结果。您还应该小心混合天堂和重量轻的组件 – MadProgrammer