gpt4 book ai didi

java - 按下保存按钮时保存 Jtable 数据

转载 作者:行者123 更新时间:2023-12-04 06:38:02 26 4
gpt4 key购买 nike

我想将 jtable 的名称和值保存到两个变量中

public class NewClass extends JPanel implements TableModelListener {
private final String[] columnNames = { "Name", "Value","check"};
private JTable table;
private DefaultTableModel tableModel;
private final JButton buttonSave;

public NewClass(){
tableModel = new DefaultTableModel(columnNames, 0);

tableModel.addTableModelListener(this);
table = new JTable(tableModel);
javax.swing.table.TableColumn var_col;
var_col = table.getColumnModel().getColumn(2);
final JCheckBox check = new JCheckBox();

var_col.setCellEditor(new DefaultCellEditor(check));
var_col.setCellRenderer(new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row, int
column) {
check.setSelected(((Boolean)value).booleanValue()) ;
return check;
}
});

JScrollPane scrollPane = new JScrollPane(table);

setLayout(new BorderLayout());
setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
add(BorderLayout.NORTH, new JLabel("Mon panier", JLabel.CENTER));
add(BorderLayout.CENTER, scrollPane);
//--------I want to save these Name and value in two variables -----------

Object[] data1 = {
new String("work"), new String("done"),new Boolean(false)};
tableModel.addRow(data1);

buttonSave = new JButton("Save");
buttonSave.setEnabled(false);
buttonSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
buttonSave.setEnabled(false);
}
});

最佳答案

How to Use Tables 中所述,您的表的数据应该由 TableModel 管理如 AbstractTableModel或混凝土 DefaultTableModel在您的示例中使用。在此 example , DataModel扩展 AbstractTableModel并合成一个 List<Value>测试数据;你会监听任何监视串行端口的对象。 example也使用类 Value封装一个可选择的数值。定制TableCellEditor每次更新 Value因为它被改变了,所以 DataModel始终包含列表中每个元素的选择状态。然后,您的保存按钮可以以您喜欢的任何格式保存列表元素。

关于java - 按下保存按钮时保存 Jtable 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4622411/

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