Jtableはデータベースからデータをロードできません

KhoaVo

列名を動的にロードできるにもかかわらず、データをテーブルにロードできないようです。データを読み込もうとすると、Javaアイコンがタスクバーに表示されているにもかかわらず、何も表示されません。GUI自体に問題はないようですので、コンストラクターから接続を開くと論理エラーが発生するのではないかと思っていました.populateTableメソッドの2番目のforループでローカル変数を出力して、データがローカルに渡されたかどうかを確認しました変数とそれらはそうだったので、私はこのエラーの原因を正確に知りません。

GUIのコードは次のとおりです。

public class WeatherFrame extends JFrame {

    private JPanel contentPane;
    private JTable table;
    HealthData health = new HealthData();
    private DefaultTableModel model;
    String[] columnNames = {"zipcode", "county", "city", "state", "year", "month","ageGroup",
                            "numOfVisits", "MonthlyMax", "MonthlyMin", "MonthlyNor"};

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    WeatherFrame frame = new WeatherFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public WeatherFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 800, 300);
        contentPane = new JPanel();
        contentPane.setBounds(100, 100,750, 200);
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(6, 25, 788, 180);
        contentPane.add(scrollPane);

        model = new DefaultTableModel();
        populateTable();
        table = new JTable(model);

        scrollPane.setViewportView(table);

        JButton btnInsert = new JButton("insert");
        btnInsert.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
        });
        btnInsert.setBounds(315, 217, 117, 29);
        contentPane.add(btnInsert);

        JButton btnDelete = new JButton("delete");
        btnDelete.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
        });
        btnDelete.setBounds(198, 243, 117, 29);
        contentPane.add(btnDelete);

        JButton btnSearch = new JButton("search");
        btnSearch.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
        });
        btnSearch.setBounds(81, 243, 117, 29);
        contentPane.add(btnSearch);

        JLabel lblWeatherTable = new JLabel("Weather Table");
        lblWeatherTable.setBounds(149, 6, 107, 16);
        contentPane.add(lblWeatherTable);

        JButton btnNext = new JButton("update");
        btnNext.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
        });
        btnNext.setBounds(198, 217, 117, 29);
        contentPane.add(btnNext);

        JButton btnRefresh = new JButton("refresh");
        btnRefresh.setBounds(81, 217, 117, 29);
        contentPane.add(btnRefresh);
    }

    public void populateTable() {

        for(String name: columnNames)
            model.addColumn(name);

        ArrayList<Health> healthdata = new ArrayList<Health>();
        healthdata = health.showAllData();                                  
        model.addRow(healthdata.toArray()); 
    }
}

これはHealthDataクラスのコンストラクターです

public HealthData(){
        try {
            /* Connect to database */
            connection = DriverManager.getConnection(jdbcURL, MySQLConfig.user, MySQLConfig.password);
            statement = connection.createStatement();
           data = new ArrayList<Health>();
        } catch (Exception e) 
        {
            e.printStackTrace();
        }

    }

これはshowAlldataメソッドのコードです

public ArrayList<Health> showAllData(){
        ArrayList<Health> list = new ArrayList<Health>();
        try {
            connection = DriverManager.getConnection(jdbcURL, MySQLConfig.user, MySQLConfig.password);
            Statement stmt = connection.createStatement();
            ResultSet result = stmt.executeQuery(SELECT_ALL_QUERY);


            /* Get and print out data from health table : zipcode, county, city, state, year, month, ageGroup, numberOfVisits, MMax, MMin, MNor */
            while(result.next()){
                Health data = new Health();
                int zipcode = result.getInt(1);
                data.setZipCode(zipcode);
                String county = result.getString(2);
                data.setCounty(county);
                String city = result.getString(3);
                data.setCity(city);
                String state = result.getString(4);
                data.setState(state);
                int year = result.getInt(5);
                data.setYear(year);
                int month = result.getInt(6);
                data.setMonth(month);
                String ageGroup = result.getString(7);
                data.setAgeGroup(ageGroup);
                int numOfVisits = result.getInt(8);
                data.setNumOfVisits(numOfVisits);
                float MMax = result.getFloat(9);
                data.setMMax(MMax);
                float MMin = result.getFloat(10);
                data.setMMin(MMin);
                float MNor = result.getFloat(11);
                data.setMNor(MNor);
                list.add(data);     
                connection.close()
                stmt.close();   
            }   

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }

誰かがこの問題を解決するための解決策を提案できますか?よろしくお願いします。私はすでにこれについて質問を投稿しましたが、この質問は必要なコードで最新のものです。

コードを編集して、showAlldataを1回だけ呼び出し、接続とステートメントを閉じますが、同じエラーが引き続き発生します

KhoaVo
public void populateTable() {

        model = new DefaultTableModel(){

            @Override
            public boolean isCellEditable(int row, int column) {
               //all cells false
               return false;
            }
        };

        for(String name: columnNames)
            model.addColumn(name);
        ArrayList<Health> temp = new ArrayList<Health>();
        temp = health.showAllData();
        for(int i = 0; i< temp.size(); i++) {
            Object[] data = {temp.get(i).getZipCode(), temp.get(i).getCounty(), temp.get(i).getCounty(), temp.get(i).getState(),temp.get(i).getYear(),
                             temp.get(i).getMonth(), temp.get(i).getAgeGroup(), temp.get(i).getNumOfVisits(), temp.get(i).getMMax(), temp.get(i).getMMin(), temp.get(i).getMNor()};
            model.addRow(data);
        }
    }

助けてくれてありがとう、私は上記のように私のpopulateTableメソッドを変更することによってこの質問を解決しました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

データはデータベースに追加されますが、データベースからロードできません。アンドロイド

分類Dev

Pythonからデータベースを更新できません

分類Dev

データベースから行を削除できません

分類Dev

データベースから値を取得できません

分類Dev

データベースから行を削除できません

分類Dev

Firebaseデータベースからデータを受信できません

分類Dev

データベースから列のデータを取得できません

分類Dev

FirebaseデータベースからOrderbyChild()データを取得できません

分類Dev

codeigniterのデータベースからデータを削除できません

分類Dev

MySQLデータベースからデータを更新できません

分類Dev

CodeIgniter:データベースからデータを取得できません

分類Dev

データベースからデータを取得できません

分類Dev

sqlalchemy:データベースからデータを取得できません

分類Dev

Firebase データベースからデータを取得できません

分類Dev

Firebase データベースからデータを取得できません

分類Dev

Firebase データベースからデータを受信できません

分類Dev

Android - SQLite データベースからデータを更新できません

分類Dev

データベースから出力データを取得できません

分類Dev

Firebaseデータベースからデータを受信できません

分類Dev

FirebaseRealtimeデータベースからデータを取得できません

分類Dev

データベースからリロードするリストアイテムを取得できません

分類Dev

データベースからテキストをアップロードして表示できません

分類Dev

JTable javanetbeansのデータベースからレコードがロードされません

分類Dev

サンプルデータベースを「SQLQueriesForMereMortals」からOracleのSQLDeveloperにロードできません

分類Dev

SQLiteはデータベースから値を削除できません

分類Dev

QSqlQueryModelはデータベースから時間を取得できません

分類Dev

データベースをデタッチできません(c#から)

分類Dev

DockercomposeでMongoDBを使用すると、ローカルデータベースからデータを認証およびダウンロードできません

分類Dev

ドロップダウンリストからデータベースに値を追加できません

Related 関連記事

  1. 1

    データはデータベースに追加されますが、データベースからロードできません。アンドロイド

  2. 2

    Pythonからデータベースを更新できません

  3. 3

    データベースから行を削除できません

  4. 4

    データベースから値を取得できません

  5. 5

    データベースから行を削除できません

  6. 6

    Firebaseデータベースからデータを受信できません

  7. 7

    データベースから列のデータを取得できません

  8. 8

    FirebaseデータベースからOrderbyChild()データを取得できません

  9. 9

    codeigniterのデータベースからデータを削除できません

  10. 10

    MySQLデータベースからデータを更新できません

  11. 11

    CodeIgniter:データベースからデータを取得できません

  12. 12

    データベースからデータを取得できません

  13. 13

    sqlalchemy:データベースからデータを取得できません

  14. 14

    Firebase データベースからデータを取得できません

  15. 15

    Firebase データベースからデータを取得できません

  16. 16

    Firebase データベースからデータを受信できません

  17. 17

    Android - SQLite データベースからデータを更新できません

  18. 18

    データベースから出力データを取得できません

  19. 19

    Firebaseデータベースからデータを受信できません

  20. 20

    FirebaseRealtimeデータベースからデータを取得できません

  21. 21

    データベースからリロードするリストアイテムを取得できません

  22. 22

    データベースからテキストをアップロードして表示できません

  23. 23

    JTable javanetbeansのデータベースからレコードがロードされません

  24. 24

    サンプルデータベースを「SQLQueriesForMereMortals」からOracleのSQLDeveloperにロードできません

  25. 25

    SQLiteはデータベースから値を削除できません

  26. 26

    QSqlQueryModelはデータベースから時間を取得できません

  27. 27

    データベースをデタッチできません(c#から)

  28. 28

    DockercomposeでMongoDBを使用すると、ローカルデータベースからデータを認証およびダウンロードできません

  29. 29

    ドロップダウンリストからデータベースに値を追加できません

ホットタグ

アーカイブ