-2

データベースから JTable にデータを表示するにはどうすればよいですか? コンソールにデータを表示することはできましたが、JTABLE では、Jtable が Jframe に表示されなくても表示されませんが、エラーは表示されません。どうぞよろしくお願いいたします。

import java.awt.Dimension;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.*;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class ju {
    private static Object request;
    static JTable mysTable;
    //constructor method

    public static void main (String args []){

        mysTable = new JTable(3,2);
        JScrollPane myPanel = new JScrollPane(mysTable,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                                              JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

        mysTable.setPreferredScrollableViewportSize(new Dimension(500,70));

        JFrame frame = new JFrame("King Musa Saloon Software");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);
        frame.setSize(500,500);
        frame.setVisible(true);
        frame.add(mysTable);
        //frame.add(mysTable);

        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Driver loading success!");
            String url = "jdbc:mysql://localhost:3306/saloon";
            String name = "root";
            String password = "";

            try {
                java.sql.Connection con = DriverManager.getConnection(url, name, password);
                System.out.println("Connected.");
                // pull data from the database 
                java.sql.Statement stmts = null;
                String query = "select  userid, username, name from saloonuser ";
                stmts = con.createStatement();

                ResultSet rs = stmts.executeQuery(query);
                int li_row = 0;
                while(rs.next()){
                    mysTable.setValueAt(rs.getString("username"),li_row,0);
                    mysTable.setValueAt(rs.getString("name"),li_row,0);
                    int userid = rs.getInt("userid");
                    String username = rs.getString("username");
                    String name1     = rs.getString("name");
                    System.out.println(name1);
                    li_row++;
                }  
            } catch (SQLException e) {
                e.printStackTrace();
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }   
    }

}
4

1 に答える 1

0

出来上がりです。これを見てください:

http://www.java2s.com/Code/Java/Swing-JFC/DisplayResultSetinTableJTable.htm

あなたが投稿したコードはひどいです。捨てて最初からやり直すことをお勧めします。

問題を分割します。今のところUIは忘れてください。データベースにアクセスして必要なデータを返すだけの DAO を作成します。テストして脇に置きます。次に、UI を開始します。DAO クラスのインスタンスを渡して、返されるデータの表示だけを考えてください。

于 2013-05-28T18:21:29.500 に答える