问题描述
我的JFrame中有一个JTable,我想知道如何在我保存text变量时保存编辑后的单元格 单击保存按钮。我仅在按Enter键和点击保存时才编辑单元格 为什么??????这是我的代码:
public class TableSave extends JFrame {
private JPanel contentPane;
private JTable table;
private String text;
public TableSave() {
setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,450,300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
Object [][] date =
{
{"NAME ",""},{"SURNAME ",{"CITY",};
String [] column = {"DESCRIPTION","DATE"};
table = new JTable(date,column);// my jtable
contentPane.add(table);
table.setBounds(10,11,368,146);
table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
TableModel model = table.getModel(); // new model
Object data = model.getValueAt(0,1);
text = (String) data;
}
});
JButton save = new JButton("SAVE"); // my button save,in i do not press enter don't save the date
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
text = (String) evt.toString();
text = (String) table.getValueAt(0,1);
System.out.println(text);
System.exit(0);}
});
save.setBounds(96,190,89,23);
add(save);
}}
你能帮我吗
解决方法
您对如何使用文本变量感到困惑。您要在不同位置将其设置为所有不同的事物,但只能使用保存按钮单击处理程序中的值(也要退出该位置)。
我之前已经说过这一点,但是开始构建GUI应用程序的正确位置是首先测试并运行 model (搜索Model-View-Controller)。这意味着创建一个TableModel
并可以序列化为文本(无论您想这样做),并首先通过编程对模型进行全面测试。一旦模型开始工作,添加GUI就很简单:只需将您的侦听器连接到现有功能即可。