2016-04-02 7 views
1
konvertieren

Ich möchte es so machen, dass es Tasten macht, zB wenn die TXT-Datei ist: * * * * * * wird es die Leerzeichen zu entfernen ***** und legte dann jeweils * in seine eigene TasteKönnen Sie string.split Array in JButtons

 //loads file and removes the spaces and stores it in an array 
     public static void loadFile(JButton[][] board, String fileName) throws IOException { 
     BufferedReader inputStream = null; 

    try { 
     inputStream = new BufferedReader(new FileReader(fileName)); 
     String lineRead = inputStream.readLine(); 
     while (lineRead != null) { 
      String[] splited = lineRead.split(" "); 
      for(int i = 0; i < board.length; i++){ 
       board[i] = lineRead.split(" "); 
      } 
    System.out.print(lineRead); 
     } 
      lineRead = inputStream.readLine(); 
    } 
    catch (FileNotFoundException exception) { 
     System.out.println("Error opening file"); 
    } 
    finally {  
     if (inputStream != null) 
      inputStream.close(); 
    } 
} 
//a button that opens the fileselector and then calls the loadfile method 
JButton file1 = new JButton("Player File"); 
    file1.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent event) { 
     JFileChooser open = new JFileChooser(); 
     open.showOpenDialog(null); 
     loadFile(buttonPlayer, "CPU.txt"); 

     } 
    }); 
+2

Was genau ist das Problem mit dem Code-Schnipsel Sie zur Verfügung gestellt? Scheitert es mit einer Ausnahme? Falsches Ergebnis produzieren? – Mureinik

+0

es sagt nur jbutton [] kann nicht in string [] konvertiert werden – kina

+0

sollten Sie ändern line 'board [i] = lineRead.split (" ");' mit dieser Linie 'board [i] = neue JButton (lineRead [i]); ' – guleryuz

Antwort

1

versuchen, etwas wie folgt aus: -

JButton jButton; 
    String yourText=" * * * * * "; 
    String btnNames[]=yourText.split(" "); 
    System.out.println(yourText); 
    for(String btnName:btnNames){ 
     System.out.print(btnName); 
     jButton=new JButton(); 
     jButton.setName(btnName.trim()); 

     // ......you can put your other stuff here...... 
    } 
+0

Sie würden setText(), nicht setName() verwenden, um das" * "zur Schaltfläche hinzuzufügen. – camickr

+0

Ja, das ist gut, aber um einen anderen Knopf zu machen, müssen wir auch einen Namen geben. So können wir Knopf mit diesen Namen abrufen. –

+0

Nein, Sie müssen dem Button keinen Namen geben. In jedem Fall würde das nicht funktionieren, wenn Sie der Schaltfläche den gleichen Namen geben. – camickr