簡體   English   中英

Java:將Canvas添加到JFrame時,如何防止調整Canvas的大小?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM