0

データベースの列名を取得し、db の列名に基づいて実行時に jlabel と jtextfield を作成するアプリケーションを作成しました。

コードスニペットは次のとおりです。Im using Netbeans here...

 public void getColumn(){
        String sql = "SELECT * from user";
        jPanel.setLayout(new GridLayout(0,2));

        try {
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            ResultSetMetaData rsmd = rs.getMetaData();
            int columnCount = rsmd.getColumnCount();

            ArrayList<String> columns= new ArrayList<String>();
            for(int i = 1; i<= columnCount; i++){
                columns.add(rsmd.getColumnName(i));
                System.out.println(String.valueOf(columns));
            }
            ArrayList<JTextField> fields = new ArrayList<JTextField>();
        for(int i = 0; i <columns.size();i++){
                JLabel jl = new JLabel(String.valueOf(columns.get(i)));
            jPanel.add(jl);
            JTextField f = new JTextField(50);
            fields.add(f);
            jPanel.add(f);
                        this.revalidate();
                        this.repaint();
               }

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }


これがサンプル出力になります。

id | ______________
fName | _____________
mName | _______________
lName | ________________

JTextFields を参照する行..

ただし、jtextfields に入力された値を取得できません。以下のコードを使用してみました。しかし、運がありません。どんな助けでも感謝します。

for(JTextField field : fields){
                JOptionPane.showMessageDialog(null, field.getText());
        }
4

2 に答える 2

0

より良い解決策は、JTable を使用することです。詳細については、テーブルの使用方法に関する Swing チュートリアルのセクションを参照してください。

開始するための簡単なコードについては、Table From Databaseを確認することもできます。最も簡単な解決策については、「TableFromDatabaseExample」コードを参照してください。

于 2013-06-14T15:32:14.397 に答える