2016-05-16 11 views
0

Ich versuche einfach Buttons über MySql zu generieren. Ich habe eine MySql DB, wo ich die Taste relevanten Daten (Name etc) Jetzt habe ich versucht, für jeden Eintrag einen eigenen Button zu generieren. Der Debugger druckt zwar in der Konsole, aber die Schaltflächen werden nicht angezeigt. Irgendwelche Ideen oder Tipps. Möchte einen Rat bekommen. Ich habe einen Klassenschwung und einen, wo ich alle mysql Anfragen behandle.(Java/MySQl) Generiere daynamic Buttons

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


public class swing { 
    static JFrame frame = new JFrame("MainMenu"); 
    static JPanel panel = new JPanel(); 
    public static void main(String[] args) { 

     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(300,300); 
     frame.add(panel); 
     JButton button = new JButton("Dursuchen"); 
     panel.add(button); 
     button.addActionListener(new search()); 

    } 



    public static void addButton(String name){ 
     JPanel rowPanel = new JPanel(); 
     System.out.println("addButton " + name); 
     JButton button = new JButton(name); 
     rowPanel.add(button); 
     //button.addActionListener(new search()); 
    } 

    static class Action implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
      JFrame frame2 = new JFrame("Clicked"); 
      frame2.setVisible(true); 
      frame2.setSize(200,200); 
      JLabel label = new JLabel(); 
      JPanel panel = new JPanel(); 
      frame2.add(panel); 
      panel.add(label); 
     } 
    } 
    static class search implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
      Search.getAllFromKat(0); 

     } 
    } 

} 

MySql Teil, wo ich das addButton() aufrufen; Dieser Teil ist in einer anderen Klasse aufgerufen mysqlaccess.java

public static void showAllFromKat(int ID){ 
     con = getInstance(); 
     if(con != null){ 
      Statement query; 
      try{ 
       query = con.createStatement(); 
       String sql = 
         "SELECT * FROM learn_themen_db"; 
       ResultSet result = query.executeQuery(sql); 
       while(result.next()){ 
        int KatID = result.getInt("Kat_ID"); 
        String DisplayName = result.getString("Display_Name"); 
        if(KatID == ID){ 
         System.out.println(DisplayName); 
         swing.addButton(DisplayName); 
        } 

       } 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
+0

'Repaint()' nach dem Hinzufügen der Tasten? –

+0

Wo wird RowPanel zum JFrame hinzugefügt? – josemr

+0

rowPanel wird nicht hinzugefügt Ich habe es entfernt. Es war nur ein Test. Wie funktioniert das Repaint()? – StonedLover

Antwort

2

die folgenden Änderungen an Ihrem Code und es wird Ihre Schaltflächen angezeigt.

public static void addButton(String name) 
{ 
    System.out.println("addButton " + name); 

    JButton button = new JButton(name); 

    panel.add(button); 
    panel.revalidate(); 
} 
+0

yeah thanks das war mein Problem :) Ich bin neu Java GUI hinzufügen und habe keine Anleitung gefunden, die es gut genug erklärt ^^ – StonedLover