2016-04-10 19 views
-2
JButton btn = new JButton(); 
JButton[][] boutons = {{btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}}; 


public Fenetre() { 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setBounds(100, 100, 450, 300); 
     contentPane = new JPanel(); 
     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
     contentPane.setLayout(new GridLayout(9, 9)); 
     setContentPane(contentPane); 

     for (int ligne=0;ligne<boutons.length;ligne++) { 
      for(int colone=0;colone<boutons[ligne].length;colone++) { 
       JButton bouton = boutons[ligne][colone]; 
       bouton.setName(String.valueOf(ligne) + " : " + String.valueOf(colone)); 
       System.out.println(String.valueOf(ligne) + " " + String.valueOf(colone)); 
       bouton.addActionListener(this); 
       contentPane.add(bouton); 
      } 
     } 


} 

我想要顯示9x9 Jbuttons(它們在JButtons數組中)並在每個JButton中設置一個名稱,以便稍後檢索它們的信息。 但是......我只有一個JButton的在我的JPanel .....如何顯示在JButton數組中的9x9 Jbuttons?

+0

這需要81個按鈕。 。 –

+0

1)F或者更好地幫助更快地發佈[MCVE]或[簡短,獨立,正確的示例](http://www.sscce.org/)。 2)Java GUI必須在不同的語言環境中使用不同的PLAF來處理不同的操作系統,屏幕大小,屏幕分辨率等。因此,它們不利於像素的完美佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 –

回答

2

原因的問題:

所有的陣列點,以相同的按鈕btn

元素這樣,當你添加它們時,你只能添加同樣的按鈕,它已經存在於面板中。因此,你只看到1個按鈕。


如何解決它:

  • 在你的數組聲明,與new JButton()替換所有btn秒。 您可以使用IDE的替換功能輕鬆完成此操作。

  • 只是聲明像數組:

    JButton[][] boutons = new JButton[9][9]; 
    

    ,並在您添加此行循環:

    bouton = new JButton();