[java] jtable更新数据的问题 jtabledatabasejava界面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 update方法里,currow.addElement(res.getString(i)); 改成:currow.addElement(res.getString(1)); 试试。 额 ,只是改变了一开始的界面,但是还是不能更新table里面的内容 从你当前的代码来说,应该将JTable table = new JTable(cellData,columnNames);放在update()后面;即table初始化应该放在cellData,columnNames初始化之后!但这样你也只能更新一次!如果你想随时更新table的内容,可以通过JTable类的getModel()方法来获取其对应的TableModel对象,利用TableModel对象来更新JTable的数据(Swing组件设计利用了MVC设计模式),在这给你个小例子提供点思路:import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.table.*;public class TestFrame extends JFrame { private JPanel contentPane; private JTable table; public static void main(String[] args) { public TestFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); table = new JTable(); final DefaultTableModel dtm = new DefaultTableModel(); dtm.addColumn("序号"); dtm.addColumn("随机数"); for (int i = 0; i < 10; ++i) { dtm.addRow(new Object[] { i, Math.random() * 100 }); } table.setModel(dtm); table.setBounds(10, 10, 414, 208); contentPane.add(table); JButton button = new JButton("更新"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { for (int i = 0; i < dtm.getRowCount(); ++i) { dtm.setValueAt(Math.random() * 100, i, 1); } } }); button.setBounds(192, 228, 93, 23); contentPane.add(button); }}点击更新后更新第二列的随机数希望有帮助 如果columnNames是Vector<String>类型的话,可以这样:currow.addElement(res.getString(columnNames.get(i-1))); 如果columnNames是Vector<String>类型的话,可以这样:currow.addElement(res.getString(columnNames.get(i-1))); 恩,我去试一试 恩,按这个例子改成功了,谢谢~不过具体的原因还是不太清楚,我也用了model了啊。。 java se 单例模式问题 各位好。请教一个问题。 swing控件如何调整布局? 谁能帮我解释一下第三方播放器解码里的那个seek()方法? 使用JTextPane进行DocumentEvent处理出现的问题。 java 日期比较得到分钟的差数 谁能帮我翻译一下 谁能提供我java 打印(纯java代码)的源程序? 如何在一个Frame/Canvas/Panel上用Graphics直接画条线?必须写成Application,能写个例子看看吗? 为什么我这样写没有表头的工具提示? 100以内素数和问题 java中关于droptarget的问题
currow.addElement(res.getString(i));
改成:currow.addElement(res.getString(1));
试试。
额 ,只是改变了一开始的界面,但是还是不能更新table里面的内容
如果你想随时更新table的内容,可以通过JTable类的getModel()方法来获取其对应的TableModel对象,利用TableModel对象来更新
JTable的数据(Swing组件设计利用了MVC设计模式),在这给你个小例子提供点思路:
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;public class TestFrame extends JFrame {
private JPanel contentPane;
private JTable table; public static void main(String[] args) { public TestFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
table = new JTable();
final DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("序号");
dtm.addColumn("随机数");
for (int i = 0; i < 10; ++i) {
dtm.addRow(new Object[] { i, Math.random() * 100 });
}
table.setModel(dtm);
table.setBounds(10, 10, 414, 208);
contentPane.add(table); JButton button = new JButton("更新");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < dtm.getRowCount(); ++i) {
dtm.setValueAt(Math.random() * 100, i, 1);
}
}
});
button.setBounds(192, 228, 93, 23);
contentPane.add(button);
}
}
点击更新后更新第二列的随机数
希望有帮助
currow.addElement(res.getString(columnNames.get(i-1)));
currow.addElement(res.getString(columnNames.get(i-1)));
恩,我去试一试
不过具体的原因还是不太清楚,我也用了model了啊。。