簡體   English   中英

奇怪的Java畫布大小輸出

[英]Weird Java canvas size output

我是Java的新手(盡管我對JavaScript有廣泛的了解),
我正在嘗試使用Canvas ,這導致了這個奇怪的問題。
在這里檢查代碼。
如您所見,在定義Canvas的大小之后,我嘗試打印它。
但是它不能正確打印尺寸。

            setMinimumSize(new Dimension(WIDTH,HEIGHT));
            setMaximumSize(new Dimension(WIDTH,HEIGHT));
            setPreferredSize(new Dimension(WIDTH,HEIGHT));

            frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new BorderLayout());
            frame.add(this, BorderLayout.CENTER);
            frame.pack();
            frame.setResizable(false);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);

            System.out.println(getWidth());

為什么尺寸改變了?

首選/最小/最大大小是布局管理者的“建議”,即您的組件可能希望如何進行布局,因此我們沒有保證將使用它們。

BorderLayout將嘗試並利用可用空間將組件填充到其中,

現在,對於pack,框架的大小已(通常)設置為內容窗格的首選大小。

因此,現在您要問的是,為什么不將其設置為所提供的內容。 答案是,框架還需要包括框架裝飾,這從可用空間中減去(框架大小-裝飾插圖=可用空間),您還需要考慮菜單欄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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