0

私は初心者で、MySQL データベース列に新しいエントリが挿入されたときに jbutton を自動的に作成する方法を見つけようとしています。このボタンのテキストは、データベースのエントリから取得されます。テーブルから jbutton テキストとして使用する情報を取得する方法を理解しましたが、もっと簡単な方法が必要だと感じています。これらの問題のいずれかに関するアイデアはありますか? 以下に私のコードのスニペットを含めました。ありがとう!

public class JuniorSkills extends javax.swing.JFrame {

/**
 * Creates new form JuniorSkills
 */
public JuniorSkills() throws ClassNotFoundException {
initComponents();
    Connection conn = null;
    Statement statement = null;
    ResultSet rs = null;


    try {
        Class.forName("com.mysql.jdbc.Driver");
        conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/simlab","root","password");
        System.out.println("Connected to database");

        statement = conn.createStatement();
        rs = statement.executeQuery("SELECT * FROM skill_table WHERE class='junior'");

        int count = 0;
        while(rs.next())
        {
            count++;
            String gotit = rs.getString(1);
            //System.out.println(gotit);
            if(count==1)
            {
                Skill1.setText(rs.getString(1));
            }
            else if(count==2)
            {
                skill2.setText(rs.getString(1));
            }
            else if(count==3)
            {
                skill3.setText(rs.getString(1));
            }
            else if(count==4)
            {
                skill4.setText(rs.getString(1));
            }
            else if(count==5)
            {
                Skill5.setText(rs.getString(1));
            }
            else if(count==6)
            {
                skill6.setText(rs.getString(1));
            }
            else if(count==7)
            {
                Skill7.setText(rs.getString(1));
            }
            else if(count==8)
            {
                Skill8.setText(rs.getString(1));
            }
            else if(count==9)
            {
                Skill9.setText(rs.getString(1));
            }
            else if(count==10)
            {
                Skill10.setText(rs.getString(1));
            }
        }
    } catch (SQLException ex) {
        Logger.getLogger(JuniorSkills.class.getName()).log(Level.SEVERE, null, ex); 
    }



}
4

1 に答える 1

1

固定数の行しかない場合は、JButtons の配列を作成できます

private JButton[] myFixedListOfButtons;

//...//

myFixedListOfButtons = new JButton[10];

//...//

while(rs.next())
{
    String gotit = rs.getString(1);
    if (count < myFixedListOfButtons.length) 
    {
        myFixedListOfButtons[count].setText(gotit);
    }
    count++;
}

または、可変数の行がある場合は、必要に応じてボタンを作成するだけです

removeAll(); // remove all the old buttons...
while(rs.next())
{
    String gotit = rs.getString(1);
    JButton btn = new JButton(gotit);
    add(btn);
}
于 2013-03-20T00:08:02.023 に答える