import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellEditor; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MultiRowEditDemo extends JFrame { private JTable table; private DefaultTableModel model; public MultiRowEditDemo() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setLocationRelativeTo(null); table = new JTable(model) { @Override public TableCellEditor getCellEditor(int row, int column) { int modelColumn = convertColumnIndexToModel(column); if (modelColumn == 1) { return new DefaultCellEditor(new JTextField()); } else { return super.getCellEditor(row, column); } } }; table.setSurrendersFocusOnKeystroke(true); table.putClientProperty("terminateEditOnFocusLost", true); addButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { model.addRow(new Object[]{"", ""}); } }); JScrollPane scrollPane = new JScrollPane(table); getContentPane().setLayout(new BorderLayout()); getContentPane().add(addButton, BorderLayout.NORTH); getContentPane().add(scrollPane, BorderLayout.CENTER); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new MultiRowEditDemo().setVisible(true); } }); } }


上一篇:
下一篇:
切换中文