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);
}
}
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);
}
}
没有什么问题,执行结果:happy
happy
happy
happy
happy
happy
happy
happy
happy
aaa
bbb
//停了一会
bbb
//又停了一会
bbb
帮忙再看一下
我用延时的目的是想在JTable里看见数据是一个一个加进来的,先是bbb,延时了一会又在下一行显示bbb,延了一会有一个bbb,是在JTable里产生这样的效果,就好像dos下显示happy似的
可jTable1.updateUI()就是没用,大虾们请指点一下~