сохранить данные Jtable при нажатии кнопки save - PullRequest
2 голосов
/ 07 января 2011

Я хочу сохранить имя и значение 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);
}
});

1 Ответ

3 голосов
/ 07 января 2011

Как обсуждено в Как использовать таблицы , данными вашей таблицы следует управлять TableModel, например AbstractTableModel или конкретным DefaultTableModel, используемым в вашем примере. В этом примере , DataModel расширяет AbstractTableModel и синтезирует List<Value> тестовых данных; Ваш будет слушать любой объект, который контролирует последовательный порт. пример также использует класс Value для инкапсуляции выбираемого числового значения. Пользовательский TableCellEditor обновляет каждый Value по мере его изменения, поэтому DataModel всегда содержит состояние выбора каждого элемента в списке. Затем ваша кнопка сохранения может сохранить элементы списка в любом формате, который вы предпочитаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...