2013-07-01 39 views
1

我正在編寫一個用Java編寫的Chinese Chess程序,非常感謝有關設計/實現GUI的一些指導。製作中國象棋程序的圖形用戶界面

董事會將被劃分成一個9×10的網格,棋子佔用每個單元格的「圖像」。這些單元格在點擊時還需要「註冊」,以便我知道點擊了哪個部分。

1)我想GridLayout代表董事會JPanel的佈局經理。如何將圖像添加到每個組件?

public void paintComponent(Graphics g) { 
    Image dog = new ImageIcon("dog.png").getImage(); 
    add(dog) 
} 

不能按dog不是Component

2)如何在每個單元格中註冊點擊次數?

回答

4

使用包含圖標的JLabel。然後將標籤添加到網格佈局。有關更多信息,請參閱How to Use Icons的Swing教程。

另請閱讀How to Write a Mouse Listener的部分,瞭解傾聽標籤上的點擊。

或者你可以使用一個JButton帶有圖標,然後用:

button.setBorderPainted(false); 

這樣你就不會看到單擊該按鈕的作用。然後你會使用一個ActionListener。本教程還有一節介紹如何使用ActionListener。

4

是的,GridLayout似乎適合此用途。

查看構造函數JButton(Icon)

查看this answer查看一個示例,該示例將一個現有圖像拼貼集合用於JLabelJButton實例。

+2

+1,我只是在尋找這個例子中,以爲誰問的問題鼓(透明圓圈播放聲音)的OP也許能夠使用這樣的事情。現在,我已將書標記爲鏈接:0 – camickr