【问题标题】:How to display results on jTable?如何在 jTable 上显示结果?
【发布时间】:2017-05-25 15:01:59
【问题描述】:

我想知道如何让结果显示在 jTable 或 txtfields 上?

private void sokaElevBetygActionPerformed(java.awt.event.ActionEvent evt) {                                              
     String elPP = tfAngivetId.getText();

     if (forms.Validering.textNotEmpty(tfAngivetId)){
         try {
             hogdb.fetchRows("select elev.FORNAMN, elev.EFTERNAMN, har_betyg_i.KURSBETYG FROM ELEV, HAR_BETYG_I WHERE ELEV.ELEV_ID = " + elPP);
             JOptionPane.showMessageDialog(rootPane, "data exist");
         }
         catch(InfException ex) {  
             System.out.println(ex.getMessage());
         }
    }
}

【问题讨论】:

  • 你的 hogdb 类在哪里,你的 fetchRows 方法返回类型是什么?
  • public static void main(String[] args) { try { hogdb = new InfDB("C:\\db\\HOGDB.FDB");新的 StartSida(hogdb).setVisible(true); } catch (InfException e) { JOptionPane.showMessageDialog(null, "出了点问题:" + e); } }
  • 我不确定是 fetchRows 还是 getResultSet :(
  • @SarahSoso,不要在 cmets 中发布代码。如您所见,代码不可读。使用更新的信息编辑您的问题。我建议您使用"JTable ResultSet" 之类的关键字搜索论坛,以查找JTable 中数据库中显示数据的示例。

标签: java sql swing jtable resultset


【解决方案1】:

在此示例中,我试图向您展示如何填充 JTable 来自数据库(带有连接示例)..

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class JTableTest extends JFrame{

    private DefaultTableModel model;
    private JTable table;
    private final String[] colname;

    public JTableTest() {

        colname = new String[] { "NAME ", "EMAIL  " };  //table headers
        model = new DefaultTableModel(colname, 0);      //table model
        populateMyModel(model); //the following populating method
        table = new JTable(model);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        table.setFont(new Font("Monospaced", Font.PLAIN, 13));
        table.setBackground(new Color(245, 245, 245));
        table.setRowHeight(25);
        table.setMinimumSize(new Dimension(60, 20));

    }

    public void populateMyModel(DefaultTableModel model) {
        final String host = "com.mysql.jdbc.Driver";
        final String url = "localhost://database_name/table_name";
        final String user = "user_name";
        final String psw = "password";
        final Connection conn;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        String Name = "";
        String mail = "";

        try {
            Class.forName(host);
            conn = DriverManager.getConnection(url, user, psw);
            String SQL = "BLAH BLAH";
            preparedStatement = conn.prepareStatement(SQL);
            resultSet = preparedStatement.executeQuery();

            while (resultSet.next()) {

                Name = resultSet.getString("NAME");
                mail = resultSet.getString("EMAIL");

            }

            // here we populating the table model from database.
            this.model.addRow(new Object[] {Name, mail}); 

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

    }
}

我尽可能多地展示,希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多