[code="java"]package test;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.table.*;
import print.UpCenterPanel;
public class TestTabel extends JFrame{
public static Vector<Vector> stuInfo = null ;
JScrollPane tablepanel = null;
public TestTabel(){
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 200);
this.setResizable(false);
this.setVisible(true);
//设置顶层框架居中显示
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
int x = (screenWidth - WIDTH)/2;
int y = (screenHeight - HEIGHT)/2;
this.setLocation(x, y);
//table
stuInfo = new Vector<Vector>();
//names
Vector<String> names = new Vector<String>();
names.addElement("学号");
names.addElement("姓名");
names.addElement("班级");
names.addElement("学院");
//col
Vector<String> vec = new Vector<String>();
vec.addElement("10712501");
vec.addElement("傻瓜");
vec.addElement("软件0701");
vec.addElement("计算机系");
stuInfo.add(vec);
TableModel model = new DefaultTableModel(stuInfo,names);
JTable table = new JTable(model);
RowSorter sort = new TableRowSorter<TableModel>(model);
table.setRowSorter(sort);
table.setPreferredScrollableViewportSize(new Dimension(300,190));
//添加表格的面板
tablepanel = new JScrollPane(table);
tablepanel.setBackground(Color.WHITE);
tablepanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
this.add(tablepanel);
JButton button = new JButton("press");
this.add(button);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Vector<String> vec = new Vector<String>();
vec.addElement("10712501");
vec.addElement("傻瓜");
vec.addElement("软件0701");
vec.addElement("计算机系");
stuInfo.add(vec);
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception exception) {
exception.printStackTrace();
}
TestTabel tt = new TestTabel();
Vector<String> vec = new Vector<String>();
vec.addElement("10712501");
vec.addElement("傻瓜");
vec.addElement("软件0701");
vec.addElement("计算机系");
stuInfo.add(vec);
}
});
}
}
[/code]
这段代码为了测试是否可以在jtable上添加字段,在main函数中的代码
[code="java"] Vector vec = new Vector();
vec.addElement("10712501");
vec.addElement("傻瓜");
vec.addElement("软件0701");
vec.addElement("计算机系");
stuInfo.add(vec);
[/code]
但是为什么 button.addActionListener(new ActionListener(){
执行同样的代码就失败?