请java高手回答我这段代码该如何修改,才能在触发按钮以前显示表头

2025-05-14 08:09:54
推荐回答(1个)
回答(1):

代码好像是从哪里粘过来的吧,方法名有点混乱。更改之处:
1.主类名改了一下,jButton_actionPerformed()改了方法名(为了覆盖父类的方法)并且主类implements ActionLister.
2.jButton1.addActionListener(this);
3.Vector v = new Vector();Vector vh = new Vector();加入类变量,jbInit()和actionperformed()方法里都可见。
4.既然想初始就显示表头,就要在jbInit()方法里初始化。把DefaultTableModel挪到了jbInit里,在actionPerformed里更新显示。
5.增加了main方法。
源代码(更改真不大):
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Frame1 extends JFrame implements ActionListener {
JPanel contentPane;
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1;
Vector v = new Vector();
Vector vh = new Vector();
JButton jButton1 = new JButton();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/** * Component initialization. * * @throws java.lang.Exception */
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jScrollPane1.setBounds(new Rectangle(79, 100, 248, 139));
jButton1.setBounds(new Rectangle(133, 30, 95, 39));
jButton1.setText("jButton1");
jButton1.addActionListener(this);
contentPane.add(jScrollPane1);
contentPane.add(jButton1);

vh.add("11");
vh.add("22");
DefaultTableModel dtm = new DefaultTableModel(v, vh);
jTable1 = new JTable(dtm);
jScrollPane1.getViewport().add(jTable1);
}
public void actionPerformed(ActionEvent e) {
Vector v1 = new Vector();
Vector v2 = new Vector();

v1.add("aa");
v1.add("bb");
v2.add("cc");
v2.add("dd");
v.add(v1);
v.add(v2);
jScrollPane1.getViewport().add(jTable1);

}
public static void main(String[] args) {
new Frame1().setVisible(true);
}
}