解决方案 »

  1.   

    update方法里,
    currow.addElement(res.getString(i));  
    改成:currow.addElement(res.getString(1));  
    试试。
      

  2.   


    额 ,只是改变了一开始的界面,但是还是不能更新table里面的内容
      

  3.   

    从你当前的代码来说,应该将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);
    }
    }
    点击更新后更新第二列的随机数
    希望有帮助
      

  4.   

    如果columnNames是Vector<String>类型的话,可以这样:
    currow.addElement(res.getString(columnNames.get(i-1)));  
      

  5.   

    如果columnNames是Vector<String>类型的话,可以这样:
    currow.addElement(res.getString(columnNames.get(i-1)));  
    恩,我去试一试
      

  6.   

    恩,按这个例子改成功了,谢谢~
    不过具体的原因还是不太清楚,我也用了model了啊。。