治愈logv空间 2023-03-23 18:50 采纳率: 40%
浏览 37
已结题

java该如何获取表格指定数据的行?

怎样才能在java输出时在文本框输入其中的一个数据并点击按钮文本域中出现整行数据,如

姓名 岁数 爱好
小明 1 睡觉
大明 11 逗小明玩


在文本框中输入大明并点击按钮文本框中显示
大明 11 逗小明玩

  • 写回答

2条回答 默认 最新

  • IT_service_mesh 2023-03-23 19:12
    关注

    参考GPT和自己的思路:

    要实现在 Java 中获取表格中指定数据的行,可以使用 Java Swing 框架中的 JTable 组件。具体的做法是,首先创建一个 JTable 对象,并将表格数据载入该对象。然后获取文本框中输入的字符串,并遍历表格数据,搜索匹配的数据行,找到匹配的行后将该行的数据输出到文本框即可。

    下面是一份示例代码,可以供你参考:

    import javax.swing.*;
    import javax.swing.table.DefaultTableModel;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class TableTest extends JFrame {
        private JTable table;
        private JTextField textField;
        private JTextArea textArea;
    
        public TableTest() {
            // 创建表格数据模型
            DefaultTableModel model = new DefaultTableModel(new Object[][]{
                    {"小明", 1, "睡觉"},
                    {"大明", 11, "逗小明玩"}
            }, new String[]{"姓名", "岁数", "爱好"});
    
            // 创建表格并载入数据模型
            table = new JTable(model);
    
            // 创建文本框和按钮
            textField = new JTextField(10);
            JButton button = new JButton("搜索");
            button.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    // 获取文本框中的输入
                    String search = textField.getText();
    
                    // 遍历表格数据,查找匹配的行
                    int index = -1;
                    for (int row = 0; row < table.getRowCount(); row++) {
                        Object value = table.getValueAt(row, 0);
                        if (value != null && value.toString().equals(search)) {
                            index = row;
                            break;
                        }
                    }
    
                    // 输出匹配的数据行
                    if (index != -1) {
                        Object[] rowData = new Object[table.getColumnCount()];
                        for (int col = 0; col < table.getColumnCount(); col++) {
                            rowData[col] = table.getValueAt(index, col);
                        }
                        textArea.setText(String.join(" ", rowData));
                    } else {
                        textArea.setText("未找到指定数据行");
                    }
                }
            });
    
            // 创建文本域并设置为只读
            textArea = new JTextArea(5, 20);
            textArea.setEditable(false);
    
            // 创建布局并添加组件
            JPanel panel = new JPanel();
            panel.add(new JLabel("搜索:"));
            panel.add(textField);
            panel.add(button);
    
            Container contentPane = getContentPane();
            contentPane.setLayout(new BorderLayout());
            contentPane.add(panel, BorderLayout.NORTH);
            contentPane.add(new JScrollPane(table), BorderLayout.CENTER);
            contentPane.add(new JScrollPane(textArea), BorderLayout.SOUTH);
    
            // 设置窗口大小和其他属性
            setSize(new Dimension(500, 300));
            setLocationRelativeTo(null);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
        }
    
        public static void main(String[] args) {
            new TableTest();
        }
    }
    

    在这份示例代码中,我们首先创建了一个包含两行数据的表格,并使用 JTable 组件将其载入。然后在界面上添加了一个文本框和一个按钮,用于输入和搜索指定的数据行。当用户点击搜索按钮时,我们遍历表格数据,并寻找匹配的行,找到匹配的行时将该行的数据输出到文本域中。如果未找到匹配的行,则输出一个提示消息。最后将表格、文本框和文本域组合在一起,并显示在界面上。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月1日
  • 创建了问题 3月23日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)