我正在創建一個Java swing GUI,並且我已經格式化了一個JPanel來使用GridLayout。我需要訪問網格的特定「框」(即特定座標),但是我看不到這樣做的方法。Java Swing Gridlayout:訪問Specfic座標
有沒有我缺少的方法?我怎樣才能做到這一點?
感謝您的幫助!
我正在創建一個Java swing GUI,並且我已經格式化了一個JPanel來使用GridLayout。我需要訪問網格的特定「框」(即特定座標),但是我看不到這樣做的方法。Java Swing Gridlayout:訪問Specfic座標
有沒有我缺少的方法?我怎樣才能做到這一點?
感謝您的幫助!
您不應該依賴於GUI代碼(視圖)爲您提供有關程序數據(模型)的信息。最好的解決方案是「知道」哪一個組件從一開始就在哪裏 - 也許你應該有一個數據結構(二維數組?),它包含了組件,並且只要有東西添加到網格就會更新。
如果你想要一個快速和非常髒的修復,但是,你可以開始玩JPanel.getComponentAt()
遊戲。然而,這需要像素座標,所以您需要進行一些逆向工程來確定給定的網格平方有多少空間。網格廣場之間的空間爲is given by your GridLayout
object。這是不建議雖然。我只是爲了完整性而加入它(因爲它是對你的問題的更直接回應)。
GridLayout
「容器被分成相等大小的矩形。」您可以在要顯示爲空的位置添加一個空的透明組件,例如new JLabel("")
。另見GridBagLayout
和Using Layout Managers。
您可能會從使用網格切換按鈕的[遊戲](http://sites.google.com/site/drjohnbmatthews/buttons)中獲得一些建議。 – trashgod
你正在爲[河內塔]建造一個視圖(http://stackoverflow.com/questions/7747691/solving-recursive-towers-of-hanoi-in-lisp)? – trashgod
*「需要訪問網格的特定」框「(即特定座標)」* 1)提供給最終用戶的程序功能是什麼?網格中的單元格是什麼? –
@trashgod不,我不是在河內的塔樓工作 - 雖然我正在爲遊戲製作一個GUI。 – kubasub