2016-05-16 2 views
0

MySqlを使用してボタンを生成するだけです。 ボタン関連のデータ(名前など)を格納しているMySql DBがある 今、私は各エントリに対して独自のボタンを生成しようとしました。デバッグはコンソールに表示されますが、ボタンは表示されません。任意のアイデアやヒント。アドバイスを受けたいですか? 1つのクラススイングと1つのmysqlリクエストをすべて処理します。(Java/MySQl)デイナナミックボタンを生成する

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); 

     } 
    } 

} 

ここで私は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

ボタンを追加した後のRepaint()? –

+0

rowPanelはJFrameにどこに追加されていますか? – josemr

+0

rowPanel is not added私はそれを削除しました。それはただのテストだった。 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

関連する問題