java点击切换按钮将jtable表格勾选的一行中其中一个String类型信息更改成另一个代码实现
时间: 2024-03-26 11:36:24 浏览: 59
可以通过以下代码实现:
```java
// 假设table为需要更改的JTable对象,selectedRow为选中的行
int selectedRow = table.getSelectedRow();
// 获取选中行的数据模型
DefaultTableModel model = (DefaultTableModel) table.getModel();
// 获取需要更改的单元格数据
String oldValue = (String) model.getValueAt(selectedRow, columnIndex);
// 修改为新的值
String newValue = "新的值";
model.setValueAt(newValue, selectedRow, columnIndex);
```
需要注意的是,需要获取选中行的数据模型,然后通过 `setValueAt` 方法修改指定行和列的值。其中,`columnIndex` 为需要更改的列的索引,可以根据实际情况进行修改。
相关问题
java点击切换按钮将jtable表格勾选的一行中其中一个String类型信息更改成另一个并同时更改文件中对应数据代码实现
假设文件中的数据是以逗号分隔的文本文件,每行对应表格中的一行数据。可以通过以下代码实现:
```java
// 假设table为需要更改的JTable对象,selectedRow为选中的行
int selectedRow = table.getSelectedRow();
// 获取选中行的数据模型
DefaultTableModel model = (DefaultTableModel) table.getModel();
// 获取需要更改的单元格数据
String oldValue = (String) model.getValueAt(selectedRow, columnIndex);
// 修改为新的值
String newValue = "新的值";
model.setValueAt(newValue, selectedRow, columnIndex);
// 修改文件中对应数据
try {
File file = new File("data.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
StringBuilder content = new StringBuilder();
while ((line = reader.readLine()) != null) {
String[] values = line.split(",");
if (values[0].equals(model.getValueAt(selectedRow, 0))) {
// 找到需要更改的行
values[columnIndex] = newValue;
line = String.join(",", values);
}
content.append(line).append("\n");
}
reader.close();
// 写入修改后的文件
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(content.toString());
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
```
需要注意的是,需要读取文件中的所有数据,然后找到需要更改的行,修改对应列的值,然后重新写入文件。其中,`columnIndex` 为需要更改的列的索引,可以根据实际情况进行修改。
java 实现点击切换按钮将jtable表格中勾选的一行其中的一个数据更改,然后再将对应文本中存储的数据一起更改代码完整实现
好的,针对您的问题,我提供以下的 Java 代码实现。您可以将其添加到您的项目中并进行适当的修改以满足您的需求。
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TableDemo extends JFrame implements ActionListener {
private JTable table;
private DefaultTableModel model;
private JButton button;
public TableDemo() {
setTitle("Table Demo");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建表格
String[] columnNames = {"姓名", "性别", "年龄"};
Object[][] rowData = {
{"张三", "男", 20},
{"李四", "女", 22},
{"王五", "男", 25},
{"赵六", "女", 30}
};
model = new DefaultTableModel(rowData, columnNames);
table = new JTable(model);
// 创建按钮
button = new JButton("更改数据");
button.addActionListener(this);
// 将表格和按钮添加到窗口中
JScrollPane pane = new JScrollPane(table);
getContentPane().add(pane, BorderLayout.CENTER);
getContentPane().add(button, BorderLayout.SOUTH);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
int rowIndex = table.getSelectedRow();
if (rowIndex >= 0) {
// 获取选中行的数据
String name = (String) model.getValueAt(rowIndex, 0);
String sex = (String) model.getValueAt(rowIndex, 1);
int age = (int) model.getValueAt(rowIndex, 2);
// 修改数据
age += 1;
model.setValueAt(age, rowIndex, 2);
// 更新文本框中的数据
JOptionPane.showMessageDialog(this, "选中的行为:" + name + "," + sex + "," + age);
} else {
JOptionPane.showMessageDialog(this, "请选择要修改的行");
}
}
}
public static void main(String[] args) {
new TableDemo();
}
}
```
在这个实现中,我们创建了一个 `JTable` 表格和一个 `JButton` 按钮,并将它们添加到窗口中。当用户点击按钮时,我们将获取选中行的数据,并将年龄加一。然后我们将更新表格中的数据和文本框中的数据。
注意这里使用了 `JOptionPane.showMessageDialog()` 方法来显示更新后的数据,您可以根据您的需求进行适当的修改。
阅读全文