Jtable不刷新更新数据

Jtable不刷新更新数据,第1张

Jtable不刷新/更新数据

您的第一个片段显示如下:

JTable table = new JTable(model);

但您的

gui()
构造函数显示:

JTable table = new JTable(data, columnNames);

您两次启动表。一旦使用

TableModel
JTable(TableModeltm)
),则下一次使用
JTable(introws,intcols)
该方法不好,请
JTable
在构造函数中初始化一次:

gui() {DefaultTableModel model = new DefaultTableModel(data,columnNames);JTable table =  new JTable(model);JScrollPane scrollPane = new JScrollPane(table);JButton next = new JButton("next");JButton prev = new JButton("prev");next.addActionListener(this);prev.addActionListener(this);JPanel panel = new JPanel(new BorderLayout());JPanel buttonPanel = new JPanel();buttonPanel.add(prev);buttonPanel.add(next);panel.add(buttonPanel, BorderLayout.SOUTH);panel.add(table.getTableHeader(), BorderLayout.PAGE_START);panel.add(scrollPane, BorderLayout.CENTER);getContentPane().add(panel);}

更新:

这是一个示例,该示例具有一个线程,该线程将在显示UI后启动2.5秒,并更改的值

JTable

import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class Test extends Jframe {    public static void main(String[] args) throws Exception {        SwingUtilities.invokeLater(new Runnable() { @Override public void run() {     new Test().createAndShowUI(); }        });    }    private void createAndShowUI() {        Jframe frame = new Jframe();        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        initComponents(frame);        frame.pack();        frame.setVisible(true);        new Thread(new Runnable() { @Override public void run() {     try {         Thread.sleep(2500);     } catch (InterruptedException ex) {         Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);     }      SwingUtilities.invokeLater(new Runnable() {          @Override          public void run() { model.setValueAt("hello", 0, 0);          }     }); }        }).start();    }    static DefaultTableModel model;    private void initComponents(Jframe frame) {        String data[][] = { {"1", "2", "3"}, {"4", "5", "6"}, {"7", "8", "9"}, {"10", "11", "12"}        };        String col[] = {"Col 1", "Col 2", "Col 3"};        model = new DefaultTableModel(data, col);        JTable table = new JTable(model);        frame.getContentPane().add(new JScrollPane(table));    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5506295.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-13
下一篇2022-12-13

发表评论

登录后才能评论

评论列表(0条)

    保存