栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java从ResultSet填充JTable的最简单代码

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java从ResultSet填充JTable的最简单代码

我认为从的实例构建模型的最简单方法ResultSet如下。

public static void main(String[] args) throws Exception {    // The Connection is obtained    ResultSet rs = stmt.executeQuery("select * from product_info");    // It creates and displays the table    JTable table = new JTable(buildTableModel(rs));    // Closes the Connection    JOptionPane.showMessageDialog(null, new JScrollPane(table));}方法buildTableModel:public static DefaultTableModel buildTableModel(ResultSet rs)        throws SQLException {    ResultSetmetaData metaData = rs.getmetaData();    // names of columns    Vector<String> columnNames = new Vector<String>();    int columnCount = metaData.getColumnCount();    for (int column = 1; column <= columnCount; column++) {        columnNames.add(metaData.getColumnName(column));    }    // data of the table    Vector<Vector<Object>> data = new Vector<Vector<Object>>();    while (rs.next()) {        Vector<Object> vector = new Vector<Object>();        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) { vector.add(rs.getObject(columnIndex));        }        data.add(vector);    }    return new DefaultTableModel(data, columnNames);}

更新

你喜欢用

javax.swing.SwingWorker
吗?你喜欢使用该
try-with-resources
语句吗?

public class GUI extends Jframe {    public static void main(String[] args) {        EventQueue.invokeLater(new Runnable() { @Override public void run() {     new GUI().setVisible(true); }        });    }    private final JButton button;    private final JTable table;    private final DefaultTableModel tableModel = new DefaultTableModel();    public GUI() throws HeadlessException {        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);        table = new JTable(tableModel);        add(new JScrollPane(table), BorderLayout.CENTER);        button = new JButton("Load Data");        button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {     new SwingWorker<Void, Void>() {         @Override         protected Void doInBackground() throws Exception {  loadData();  return null;         }     }.execute(); }        });        add(button, BorderLayout.PAGE_START);        setSize(640, 480);    }    private void loadData() {        LOG.info("START loadData method");        button.setEnabled(false);        try (Connection conn = DriverManager.getConnection(url, usr, pwd);     Statement stmt = conn.createStatement()) { ResultSet rs = stmt.executeQuery("select * from customer"); ResultSetmetaData metaData = rs.getmetaData(); // Names of columns Vector<String> columnNames = new Vector<String>(); int columnCount = metaData.getColumnCount(); for (int i = 1; i <= columnCount; i++) {     columnNames.add(metaData.getColumnName(i)); } // Data of the table Vector<Vector<Object>> data = new Vector<Vector<Object>>(); while (rs.next()) {     Vector<Object> vector = new Vector<Object>();     for (int i = 1; i <= columnCount; i++) {         vector.add(rs.getObject(i));     }     data.add(vector); } tableModel.setDataVector(data, columnNames);        } catch (Exception e) { LOG.log(Level.SEVERE, "Exception in Load Data", e);        }        button.setEnabled(true);        LOG.info("END loadData method");    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号