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