2016-05-16 133 views
0

我只是嘗試通過MySql生成按鈕。 我得到了一個MySql數據庫,我存儲按鈕相關數據(名稱等) 現在我試圖爲每個條目生成一個自己的按鈕。 Debug不會在控制檯中打印,但按鈕不會顯示出來。任何想法或提示。想獲得建議。我得到了一個類的swing和一個處理所有mysql請求的地方。(Java/MySQl)生成daynamic按鈕

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我調用addButton()的地方; 這部分是在另一個類中調用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

'在重新添加按鈕後重新繪製()'? –

+0

將rowPanel添加到JFrame中的位置在哪裏? – josemr

+0

rowPanel未添加我刪除它。這只是一個測試。 Repaint()如何工作? – StonedLover

回答

2

令代碼以下更改,它會顯示你的按鈕。

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

    JButton button = new JButton(name); 

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

是啊謝謝這是我的問題:)我新添加的Java GUI並沒有發現任何指導,解釋它足夠好^^ – StonedLover