[英]How do I fix this JFrame resize "bug"?
我制作了一個 (640+200)x640 像素大的 gui。 左側是棋盤(位於 position 0,0,尺寸為 640x640。額外寬度上的 200 像素用於一些按鈕配置游戲等。
問題:
棋盤的尺寸總是必須是 8 的倍數才能完美地適應框架。 如果我稍微調整框架的大小,使其高度增加 7 個像素,則棋盤和框架之間會有一點間隙,因為不能以相等的大小繪制正方形。
有什么聰明的方法可以解決這個問題?
I assume you use Swing or AWT, using Frame
or JFrame
or Window
or JWindow
as the window you're working in.
第 1 步)將您的棋盤放入自己的JPanel
中。 我們稱之為 class ChessBoardPanel
。
步驟 2) 將ChessBoardPanel
的最小、首選和最大尺寸設置為您在其構造函數中希望的尺寸(或者如果您想檢查父級的調整大小事件並對此做出反應,則將其放入方法中,以 8px 的步長調整更大/更小的父 window。)
步驟 3) 在 Window ( window.setLayout(...)
) 中安裝一個 LayoutManager,例如BoderLayout
步驟 4) 創建 ChessBoardPanel 的新實例: ChessBoardPanel ChessBoardPanel
ChessBoardPanel myChessBoardPanel = new ChessBoardPanel(parentWindow)
;
步驟 5) 將其添加到父 window,可能表示布局行為。 例如,如果您使用BorderLayout
,請在父級 window 中添加這樣的內容: this.add(myChessBoardPanel, BorderLayout.WEST);
所以它會一直顯示在左邊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.