[英]Java: How can I prevent Canvas from being resized when it is added to a JFrame?
在我的主目錄中運行此命令時:
Canvas can = new Canvas();
can.setSize(400, 400);
System.out.print(can.getWidth() + ", " + can.getHeight() + " ");
JFrame frame = new JFrame();
frame.add(can);
frame.pack();
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
System.out.println(can.getWidth() + ", " + can.getHeight());
控制台顯示為:400、400 410、410
好像當我將Canvas添加到我的JFrame並打包JFrame時,它為Canvas的寬度和高度增加了10像素。 有什么辦法可以防止這種情況發生,並獲得400 x 400的畫布嗎?
不要使用Canvas,這是AWT組件。
使用Swing時,應使用JPanel
,然后重寫面板的getPreferredSize()
以返回所需的大小。
同樣,setSize()不執行任何操作。 布局管理器將根據布局管理器的規則確定每個組件的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.