java,gui,有一个表格中有几行信息,然后点击表格下面的add按钮,就会弹出一个窗口,在上面的文本框中填写表格的信息,填写完之后如何返回有表格的页面后表格中能自动加上新加的信息
时间: 2023-09-10 16:05:51 浏览: 242
实现这个功能需要以下步骤:
1. 创建一个 JFrame 窗口作为主页面,用于显示表格和添加按钮。
2. 在主页面中创建一个 JTable,用于显示表格信息。可以使用 DefaultTableModel 类来管理表格数据。
3. 在主页面中创建一个 JButton,用于触发添加新数据的操作。可以为该按钮添加 ActionListener 监听器,以便在按钮被点击时弹出添加数据的窗口。
4. 在添加数据的窗口中创建一些 JTextField,用于接收用户输入的数据。可以为窗口添加一个 JButton,用于触发添加数据的操作。
5. 当用户在添加数据的窗口中填写完数据并点击添加按钮时,需要将数据添加到表格中。可以通过获取主页面中的 DefaultTableModel 对象,调用其 addRow() 方法来实现。
下面是一个简单的示例代码,可以帮助你更好地理解具体实现过程:
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class TableExample extends JFrame {
private JTable table;
private DefaultTableModel model;
public TableExample() {
super("Table Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建表格
String[] columnNames = {"Name", "Age", "Gender"};
Object[][] rowData = {
{"John", 25, "Male"},
{"Lisa", 30, "Female"},
{"Bob", 20, "Male"},
{"Mary", 35, "Female"}
};
model = new DefaultTableModel(rowData, columnNames);
table = new JTable(model);
// 添加表格到主面板
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JScrollPane(table), BorderLayout.CENTER);
// 添加按钮到主面板
JButton addButton = new JButton("Add");
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
AddDialog dialog = new AddDialog();
dialog.setVisible(true);
}
});
panel.add(addButton, BorderLayout.SOUTH);
// 显示主面板
setContentPane(panel);
pack();
setLocationRelativeTo(null);
}
// 添加数据的对话框
private class AddDialog extends JFrame {
private JTextField nameField;
private JTextField ageField;
private JTextField genderField;
public AddDialog() {
super("Add Dialog");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// 创建输入框
nameField = new JTextField(20);
ageField = new JTextField(20);
genderField = new JTextField(20);
// 创建添加按钮
JButton addButton = new JButton("Add");
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
model.addRow(new Object[] {name, age, gender});
dispose();
}
});
// 添加输入框和添加按钮到对话框
JPanel panel = new JPanel();
panel.add(nameField);
panel.add(ageField);
panel.add(genderField);
panel.add(addButton);
setContentPane(panel);
pack();
setLocationRelativeTo(null);
}
}
public static void main(String[] args) {
TableExample example = new TableExample();
example.setVisible(true);
}
}
```
运行该代码后,你可以看到一个包含表格和添加按钮的主页面。当你点击添加按钮时,会弹出一个对话框,让你输入新的数据。输入完毕后点击添加按钮,对话框会关闭,同时表格中会自动添加新的数据。
阅读全文