2015-11-28 25 views
-1

我需要關於如何使用代碼actionlistener的幫助或指導,以便我可以循環jButton。 它乘以16,因爲它是從txt文件中讀取的文件的字數。需要關於使用JButton ActionListener的建議

import java.awt.Container; 
import java.io.*; 
import javax.swing.*; 
import java.awt.event.*; 

public class wordGame extends JFrame implements ActionListener { 

} 

int index = (int)(Math.random()*16); 
StringBuffer s = new StringBuffer(words[index]); 
String sh = ""; 
bb = words[index]; 
int counter = s.length(); 
Container pane = getContentPane(); 
JFrame panel = new JFrame(); 
JButton b[] = new JButton [16]; 
int i; 

while (s.length() != 0) { 
    int j = (int)(Math.random() * s.length()); 
    sh = sh + s.charAt(j); 
    s.deleteCharAt(j); 
} 

if (counter == 5){ 
    for (i = 0; i < 5; i++) { 
     b = new JButton[i]; 
     panel.add(b[i]); 
    } 

    pane.add(panel); 
    for (int j = 0; j< 5; j++) { 
     b[i].setText(String.valueOf(sh.charAt(j))); 
     jButton1.setText(String.valueOf(sh.charAt(0))); 
     jButton2.setText(String.valueOf(sh.charAt(1))); 
     jButton3.setText(String.valueOf(sh.charAt(2))); 
     jButton4.setText(String.valueOf(sh.charAt(3))); 

     jButton6.setVisible(false); 
     jButton7.setVisible(false); 
     jButton8.setVisible(false); 
    } 
} 

回答

0

你的意思是你想循環它們嗎?

如果是這樣的話我可能會使用一個多維數組(或ArrayList的)..

JButton[][] bttns = new JButton[5][16](); 
for(int i = 0; i < bttns.length; i++) 
{ 
    for(int i2 = 0; i2 < bttns[0].length; i2++) 
    { 
     bttns[i][i2].setText(String.valueOf(sh.charAt(i*bttns[0].length + i2))); 
     bttns[i][i2].setVisible(True);; 
    } 
}