請高手幫忙 看看jdk/demo/jfc/...那里的参考一下.我们的程序应该解决了这个问题.我没有仔细看过,你的代码没有耐心看啊,jfc下面的示例讲解的很清楚. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接用 DefaultTableModel 即可,这个类有成员方法addRow(),通过这个方法可以动态增加行,无需手动刷新。//Test.javaimport javax.swing.*;import javax.swing.table.*;import java.awt.*;import java.awt.event.*;import java.util.Vector;public class Test implements ActionListener{ JButton add, delete; JTable table; DefaultTableModel tableModel; public Test() { } public JPanel createPanel() { Vector columnNames; columnNames = new Vector(); // 两列 columnNames.add("column 0"); columnNames.add("column 1"); tableModel = new DefaultTableModel(new Vector(),columnNames); table = new JTable(tableModel); JPanel p = new JPanel(); p.setLayout(new BorderLayout()); JScrollPane sp = new JScrollPane(table); sp.setPreferredSize(new Dimension(200, 200)); p.add(sp, BorderLayout.NORTH); JPanel buttonPanel = new JPanel(); add = new JButton("Add"); add.setName("add"); add.addActionListener(this); buttonPanel.add(add); delete = new JButton("Delete"); delete.setName("delete"); delete.addActionListener(this); buttonPanel.add(delete); p.add(buttonPanel); return p; } public void actionPerformed(ActionEvent e) { if (e.getSource() == add){ String row[] = new String[2]; row[0] = ""; row[1] = ""; tableModel.addRow(row); } else if (e.getSource() == delete){ int rowNum = table.getSelectedRow(); if (rowNum < 0){ //remove 最后一行 if(table.getRowCount() > 0) tableModel.removeRow(table.getRowCount() - 1); } else { tableModel.removeRow(rowNum); } } } public static void main(String[] args) { JFrame frame = new JFrame(); frame.getContentPane().add(new Test().createPanel()); frame.pack(); frame.show(); }} 所谓刷新即是重新载入数据到JTable而已。先setRowCount(0);清空表格再addRow(Object[] rowData);重新载入数据就可以完成刷新了 编写了一个C/S的聊天室.运行S出现下面的错误请问是什么原因? 用io流复制文件夹(包括文件夹里的文件)--出现的问题,无法创建文件夹 怎样在JCreator中能像JBuilder中那样单步调试? jxl.jar 不能用请高手指教 jdbc sql问题 高分求解,请高手来帮忙。问题比较急!!!! java类与对象的内存占用??? POI导入公式的问题. StringBuffer 的 capacity 方法返回什么容量? MySQL 的 JDBC 下载地址,安装步骤,以及Java的调用方法 就这三行代码的问题? 求教rmiregistry的具体用法?
直接用 DefaultTableModel 即可,这个类有成员方法addRow(),通过这个方法可以动态增加行,无需手动刷新。//Test.java
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;import java.util.Vector;public class Test implements ActionListener
{
JButton add, delete;
JTable table;
DefaultTableModel tableModel;
public Test()
{
} public JPanel createPanel()
{
Vector columnNames;
columnNames = new Vector();
// 两列
columnNames.add("column 0");
columnNames.add("column 1"); tableModel = new DefaultTableModel(new Vector(),columnNames);
table = new JTable(tableModel);
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
JScrollPane sp = new JScrollPane(table);
sp.setPreferredSize(new Dimension(200, 200));
p.add(sp, BorderLayout.NORTH); JPanel buttonPanel = new JPanel();
add = new JButton("Add");
add.setName("add");
add.addActionListener(this);
buttonPanel.add(add); delete = new JButton("Delete");
delete.setName("delete");
delete.addActionListener(this);
buttonPanel.add(delete);
p.add(buttonPanel); return p;
} public void actionPerformed(ActionEvent e)
{
if (e.getSource() == add){
String row[] = new String[2];
row[0] = "";
row[1] = "";
tableModel.addRow(row);
} else if (e.getSource() == delete){
int rowNum = table.getSelectedRow();
if (rowNum < 0){ //remove 最后一行
if(table.getRowCount() > 0)
tableModel.removeRow(table.getRowCount() - 1);
} else {
tableModel.removeRow(rowNum);
}
}
} public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.getContentPane().add(new Test().createPanel());
frame.pack();
frame.show();
}
}
先setRowCount(0);清空表格
再addRow(Object[] rowData);重新载入数据就可以完成刷新了