簡體   English   中英

Java-將JPanel設置為固定大小並將其縮放到窗口

[英]Java - Set JPanel to fixed size and scale it to window

我希望將JPanel的尺寸固定為800x600,但是如果JFrame的尺寸發生變化,JPanel將進行縮放,並保持原始尺寸為800x600。 例如,如果我在JPanel上繪制一個字符串,並拉伸窗口2次,則字符串也將拉伸2次。

我試過了

g2d.scale(frame.getWidth() / 800, frame.getHeight() / 600);

但是,如果我將框架的寬度更改為0.5,則背景上的顏色(在g2d.scale之后使用g2d.fillRect )將僅覆蓋框架的一半。

我可以在Swing中說的第一件事,永遠不要自己繪畫,而使用LayoutManager進行布局。 當您真的需要自己繪制時,請使用原始圖形創建一個新的Graphics2d,並在使用后進行處理。 在此圖形上,您可以設置屬性。

首先,我會考慮將面板放在框架內的BorderLayout(Center)中。 沒有您的代碼,很難知道如何為您提供幫助。

找到了解決此問題的方法。

在創建面板時創建了BufferedImage,即

bimg = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);

從中得到圖形,即

g2d = bimg.createGraphics();

在其上執行所有繪制操作,然后在JPanel上繪制縮放圖像。

    g.drawImage(bimg, 0, 0, getWidth(), getHeight(), null);

(其中getXX()返回面板的XX)。 調整窗口大小后,可以清楚地看到在BufferedImage上繪制的背景和字符串已拉伸,並保持原始大小不變。

暫無
暫無

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

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