在Java中,可以通过以下步骤将JTable的值从一个帧传递到另一个帧:
以下是一个示例代码,演示了如何实现上述步骤:
// 源帧
public class SourceFrame extends JFrame {
private JTable table;
public SourceFrame() {
// 创建JTable并填充数据
String[] columnNames = {"姓名", "年龄", "性别"};
Object[][] data = {
{"张三", 20, "男"},
{"李四", 25, "女"},
{"王五", 30, "男"}
};
table = new JTable(data, columnNames);
// 创建保存按钮
JButton saveButton = new JButton("保存");
saveButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 获取JTable的数据模型
DefaultTableModel model = (DefaultTableModel) table.getModel();
// 将数据模型转换为二维数组
Object[][] tableData = new Object[model.getRowCount()][model.getColumnCount()];
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
tableData[i][j] = model.getValueAt(i, j);
}
}
// 创建目标帧的实例,并传递二维数组
TargetFrame targetFrame = new TargetFrame(tableData);
targetFrame.setVisible(true);
}
});
// 将JTable和保存按钮添加到源帧中
JPanel panel = new JPanel();
panel.add(new JScrollPane(table));
panel.add(saveButton);
add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new SourceFrame().setVisible(true);
}
});
}
}
// 目标帧
public class TargetFrame extends JFrame {
private JTable table;
public TargetFrame(Object[][] tableData) {
// 创建新的JTable并使用传递的数据
String[] columnNames = {"姓名", "年龄", "性别"};
table = new JTable(tableData, columnNames);
// 将新的JTable添加到目标帧中
add(new JScrollPane(table));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}
}
这个示例代码中,源帧中的JTable包含了一些数据,用户可以通过点击保存按钮将这些数据传递到目标帧中显示。目标帧接收到传递的数据后,创建一个新的JTable并使用传递的数据进行初始化。
领取专属 10元无门槛券
手把手带您无忧上云