gpt4 book ai didi

java - JTable 添加/删除行到自定义表模型(更新表显示)

转载 作者:行者123 更新时间:2023-11-30 07:36:33 26 4
gpt4 key购买 nike

有没有人有一个很好的例子来说明如何使用自定义表模型从 JTable 中添加/删除行?我似乎遇到的问题是如何在我添加或删除项目时让表格不断更新。

这里真正简单的想法是在我的表格上方有一个添加和删除按钮,允许用户即时更改表格。

最佳答案

这里是添加行的例子:

import java.awt.BorderLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JViewport;
import javax.swing.SwingUtilities;
import javax.swing.table.AbstractTableModel;

public class RowAdder extends JFrame {

final SimpleModel tableData = new SimpleModel();
JTable table = new JTable(tableData);

public static void main(String[] args) {
RowAdder ra = new RowAdder();
ra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ra.setSize(400, 300);
ra.setVisible(true);
}

public RowAdder() {
final JTextField textField = new JTextField();
setLayout(new BorderLayout());
add(new JScrollPane(table), BorderLayout.CENTER);
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
tableData.addText(textField.getText());
textField.setText("");
}
});
add(textField, BorderLayout.SOUTH);
}

}
class SimpleModel extends AbstractTableModel {

Vector textData = new Vector();

public void addText(String text) {
textData.addElement(text);
fireTableDataChanged();
}

public int getRowCount() {
return textData.size();
}

public int getColumnCount() {
return 3;
}

public Object getValueAt(int row, int column) {
return textData.elementAt(row);
}

}

以上引用来自:http://www.java2s.com/Tutorial/Java/0240__Swing/AddrowstoaTable.htm

查看有关 JTable 的教程:

http://download.oracle.com/javase/tutorial/uiswing/components/table.html

专门针对表格模型检查:

http://download.oracle.com/javase/tutorial/uiswing/components/table.html#data

我认为本教程应该可以回答您的所有问题。

关于java - JTable 添加/删除行到自定义表模型(更新表显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com