import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;public class test extends JFrame implements ActionListener{
    JPanel contentPane;
    JMenuBar jMenuBar1 = new JMenuBar();//菜单栏:file,help...
    JMenu jMenuFile = new JMenu();
    JMenuItem jMenuFileExit = new JMenuItem();
JToolBar jToolBar = new JToolBar();
    JButton jButton2 = new JButton();
//jTable部分
Vector rowData=new Vector();
    Vector colName=new Vector();
{
colName.addElement("Module");//addElement要放在方法内
colName.addElement("Address");
colName.addElement("Baudrate");
colName.addElement("Checksum");
colName.addElement("Status");
colName.addElement("Description");
}
DefaultTableModel tableModel = new DefaultTableModel(rowData,colName);
    JTable jTable1 = new JTable(tableModel);
    JScrollPane scrollPane=new JScrollPane(jTable1);//把jTable加入滚动条    public test() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        setSize(new Dimension(550, 350));
        setTitle("Serial_test");
        jMenuFile.setText("File");
        jMenuFileExit.setText("Exit");
        jMenuFileExit.addActionListener(this);
        jButton2.setText("Search");//按下次按钮开始添加数据
        jButton2.addActionListener(this);
        jToolBar.setBounds(new Rectangle(0, 0, 500, 25));
        jMenuBar1.add(jMenuFile);
        jMenuFile.add(jMenuFileExit);
        setJMenuBar(jMenuBar1);
        jToolBar.add(jButton2);
        contentPane.add(jToolBar, java.awt.BorderLayout.NORTH);
        contentPane.add(scrollPane,null);    }
    public void actionPerformed(ActionEvent actionEvent) {//单击search的效果是所有数据一下子蹦出来
if(actionEvent.getActionCommand().equals("Exit"))
System.exit(0);
if(actionEvent.getActionCommand().equals("Search"))
{
Vector data=new Vector();
data.add("aaa");
tableModel.addRow(data);
for (int i=0;i<3;++i)
{
                        System.out.println("happy");//可以在DOS串口观察,好像动态显示一样,我就是想在jTable中也这样显示
Vector da=new Vector();
da.add("bbb");
tableModel.addRow(da);///////加入数据
jTable1.updateUI(); ////////////???????????为何此处没有起到刷新作用?????????
for(int j=0;j<200000000;j++)//延时,可以看出数据是一个一个加进来的,
;
}
}
    }
public static void main(String[] args)
{
test frame = new test();
frame.setVisible(true);
}
}

解决方案 »

  1.   

    跑了一下这个程序
    没有什么问题,执行结果:happy 
    happy 
    happy 
    happy 
    happy 
    happy 
    happy 
    happy 
    happy 
      

  2.   

    但我想在jTable里也以这种方式显示
    aaa
    bbb
    //停了一会
    bbb
    //又停了一会
    bbb
    帮忙再看一下
      

  3.   

    延时可以新开一个进程么?
      我用延时的目的是想在JTable里看见数据是一个一个加进来的,先是bbb,延时了一会又在下一行显示bbb,延了一会有一个bbb,是在JTable里产生这样的效果,就好像dos下显示happy似的
       可jTable1.updateUI()就是没用,大虾们请指点一下~