table.getValueAt(table.getRowCount()-1,2).equals("完成")
时间: 2024-06-02 13:10:59 浏览: 4
这段代码是用于检查 JTable 上的最后一行是否已经被标记为“完成”。它首先通过 `table.getRowCount()` 获取表格的总行数,然后使用 `table.getValueAt(table.getRowCount()-1,2)` 获取最后一行的第三列数据(假设该表格有至少 3 列)。最后,它将获取到的值与字符串“完成”进行比较,如果相等,则返回 `true`,否则返回 `false`。
相关问题
public void searchAndDisplay(String searchText, JTable table, JTable resultTable) { TableModel model = table.getModel(); int rowCount = model.getRowCount(); int colCount = model.getColumnCount(); DefaultTableModel resultModel = new DefaultTableModel(); //resultModel.setColumnIdentifiers(UserTable.getColumnIdentifiers()); for (int i = 0; i < rowCount; i++) { for (int j = 0; j < colCount; j++) { if (searchText.equals(model.getValueAt(i, j).toString())) { Object[] rowData = new Object[colCount]; for (int k = 0; k < colCount; k++) { rowData[k] = model.getValueAt(i, k); } resultModel.addRow(rowData); } } } resultTable.setModel(resultModel); } private void UserSearchActionPerformed(ActionEvent evt) { // TODO Auto-generated method stub String UserName = this.UserNameTxt.getText(); int column = 4; for(int row = 0;row< UserTable.getRowCount();row++) { Object value = UserTable.getValueAt(row, column); if(value.equals(UserName)) { DefaultTableModel dtm = (DefaultTableModel) UserTable.getModel(); dtm.setRowCount(0); /*TableRowSorter<TableModel> sorter = new TableRowSorter<>(model); sorter.setRowFilter(RowFilter.regexFilter(UserName)); UserTable.setRowSorter(sorter);*/ }else { JOptionPane.showMessageDialog(null, "该用户不存在"); return; } } }为我的代码添加一个查找功能:当我输入用户姓名时,它能从json文件中找到相应的数据并输出特定行
好的,那么您想要的功能可以通过以下步骤来实现:
1. 首先需要从json文件中读取数据,将其转化为Java对象。
2. 然后遍历Java对象,查找符合条件的数据行。
3. 最后将符合条件的数据行添加到新的TableModel中,并将其设置到显示结果的JTable中。
以下是示例代码,供您参考:
```
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import com.google.gson.Gson;
public class JsonSearchDemo {
public static void main(String[] args) {
// 示例代码中使用了Gson库来解析json文件,您可以根据实际情况选择其他库或自行解析。
Gson gson = new Gson();
try (FileReader reader = new FileReader("data.json")) {
// 将json数据读取为User对象列表
User[] users = gson.fromJson(reader, User[].class);
// 构造显示数据的TableModel
DefaultTableModel tableModel = new DefaultTableModel();
tableModel.addColumn("ID");
tableModel.addColumn("Name");
tableModel.addColumn("Age");
for (User user : users) {
Object[] row = {user.getId(), user.getName(), user.getAge()};
tableModel.addRow(row);
}
// 创建显示数据的JTable
JTable table = new JTable(tableModel);
// 创建查找结果的JTable
JTable resultTable = new JTable();
// 调用查找函数
searchAndDisplay("Alice", users, resultTable);
// 显示查找结果
JOptionPane.showMessageDialog(null, resultTable);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void searchAndDisplay(String searchText, User[] users, JTable resultTable) {
DefaultTableModel resultModel = new DefaultTableModel();
resultModel.addColumn("ID");
resultModel.addColumn("Name");
resultModel.addColumn("Age");
for (User user : users) {
if (user.getName().equals(searchText)) {
Object[] row = {user.getId(), user.getName(), user.getAge()};
resultModel.addRow(row);
}
}
resultTable.setModel(resultModel);
}
}
class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
```
请注意,示例代码中的User对象只包含了id、name和age三个属性,您需要根据自己的实际情况来修改代码。此外,示例代码中使用了JOptionPane来显示查找结果,您也可以将其修改为更适合自己的方式。
用java,gui实现这样一个代码,建立一个表格,点击表格中的一行,能够展示该行的详细信。该代码也可以用下拉菜单栏实现筛选功能(用注释解释)
以下是用Java Swing实现该功能的代码,已经添加了注释以方便理解:
```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 {
private JTable table;
private DefaultTableModel tableModel;
private JLabel nameLabel;
private JLabel ageLabel;
private JLabel genderLabel;
private JLabel addressLabel;
private JLabel phoneLabel;
private JTextField nameTextField;
private JTextField ageTextField;
private JComboBox<String> genderComboBox;
private JTextField addressTextField;
private JTextField phoneTextField;
public TableDemo() {
super("Table Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// 创建表格模型
tableModel = new DefaultTableModel(new String[]{"Name", "Age", "Gender", "Address", "Phone"}, 0);
// 添加示例数据
tableModel.addRow(new Object[]{"John Doe", 30, "Male", "123 Main St, Anytown USA", "555-1234"});
tableModel.addRow(new Object[]{"Jane Smith", 25, "Female", "456 Oak St, Anytown USA", "555-5678"});
// 创建表格并设置模型
table = new JTable(tableModel);
// 添加表格行点击事件监听器
table.getSelectionModel().addListSelectionListener(event -> {
int row = table.getSelectedRow();
if (row >= 0) {
nameTextField.setText((String) tableModel.getValueAt(row, 0));
ageTextField.setText(String.valueOf(tableModel.getValueAt(row, 1)));
genderComboBox.setSelectedItem(tableModel.getValueAt(row, 2));
addressTextField.setText((String) tableModel.getValueAt(row, 3));
phoneTextField.setText((String) tableModel.getValueAt(row, 4));
}
});
// 创建筛选面板
JPanel filterPanel = new JPanel(new FlowLayout());
// 添加筛选条件下拉菜单
String[] genders = {"All", "Male", "Female"};
JComboBox<String> filterComboBox = new JComboBox<>(genders);
filterPanel.add(new JLabel("Gender:"));
filterPanel.add(filterComboBox);
// 添加筛选按钮
JButton filterButton = new JButton("Filter");
filterButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String selectedGender = (String) filterComboBox.getSelectedItem();
for (int i = tableModel.getRowCount() - 1; i >= 0; i--) {
String gender = (String) tableModel.getValueAt(i, 2);
if (!selectedGender.equals("All") && !selectedGender.equals(gender)) {
tableModel.removeRow(i);
} else if (selectedGender.equals("All") && tableModel.getRowCount() < 2) {
// 如果是“全部”选项,并且表格中只有一行,则不删除
break;
}
}
}
});
filterPanel.add(filterButton);
// 添加表格和筛选面板到主面板
add(new JScrollPane(table), BorderLayout.CENTER);
add(filterPanel, BorderLayout.NORTH);
// 创建详细信息面板
JPanel detailPanel = new JPanel(new GridLayout(5, 2));
nameLabel = new JLabel("Name:");
ageLabel = new JLabel("Age:");
genderLabel = new JLabel("Gender:");
addressLabel = new JLabel("Address:");
phoneLabel = new JLabel("Phone:");
nameTextField = new JTextField();
ageTextField = new JTextField();
genderComboBox = new JComboBox<>(genders);
addressTextField = new JTextField();
phoneTextField = new JTextField();
detailPanel.add(nameLabel);
detailPanel.add(nameTextField);
detailPanel.add(ageLabel);
detailPanel.add(ageTextField);
detailPanel.add(genderLabel);
detailPanel.add(genderComboBox);
detailPanel.add(addressLabel);
detailPanel.add(addressTextField);
detailPanel.add(phoneLabel);
detailPanel.add(phoneTextField);
// 添加详细信息面板到主面板
add(detailPanel, BorderLayout.SOUTH);
// 显示窗口
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new TableDemo();
}
}
```
运行上述代码后,将会看到一个带有表格和筛选面板的窗口。可以使用下拉菜单来筛选特定性别的行,也可以点击表格中的行来查看详细信息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)