0
JFrame的像素精度嘿,所以我實現在一個JFrame對象畫布,但有一個輕微的煩惱:帆布
如果我指定的框架是有一定尺寸,然後在標題欄被列入垂直尺寸。類似地,窗口的左邊緣與指定大小一起被包括。我使用絕對定位來確定標題欄的像素數,並使得我的JFrame的像素數量更大,但我懷疑這是與平臺無關的。是否有合適的方法來獲取/設置可以出現在JFrame的實際可用內容中的像素數量?
JFrame的像素精度嘿,所以我實現在一個JFrame對象畫布,但有一個輕微的煩惱:帆布
如果我指定的框架是有一定尺寸,然後在標題欄被列入垂直尺寸。類似地,窗口的左邊緣與指定大小一起被包括。我使用絕對定位來確定標題欄的像素數,並使得我的JFrame的像素數量更大,但我懷疑這是與平臺無關的。是否有合適的方法來獲取/設置可以出現在JFrame的實際可用內容中的像素數量?
通常,您將「畫布」(不應該是java.awt.Canvas
,但最好是javax.swing.JPanel
)放到框架的內容窗格中。當您將首選大小設置這個組件,事後調用pack()
在框架上,然後框架將有權大小服從組件的首選尺寸:
canvas = new MyClassExtendingJPanel();
canvas.setPreferredSize(new Dimension(123,456));
frame.getContentPane().add(canvas);
...
// At the end:
frame.pack();
frame.setVisible(true);
好了,你建議的一部分併發症是由awt和swing的混合引起的,也許呢?有趣的,謝謝。我以這種方式瞭解到,未來我會嘗試適應學習顯示像素,通過不知何故只揮杆 – user3251651
我沒有明確說出這一點,但*「混合重量級和輕量級組件」*(如http:// www .oracle.com/technetwork/articles/java/mixing-components-433992.html)總是有點問題。它*應該*一般工作,但並不總是按預期工作,我建議僅使用Swing組件 – Marco13