Java 如何将JTable顶部行中的条目与匹配值进行比较?

Java 如何将JTable顶部行中的条目与匹配值进行比较?,java,swing,jtable,jdatechooser,Java,Swing,Jtable,Jdatechooser,我正在尝试创建一个应用程序,其中用户将时间和日期输入到JTable中,然后在该时间接收警报。我计划的方式是按时间顺序显示条目,最接近的条目在最上面一行,然后每5分钟与用户的日期/时间进行比较,直到它们匹配 我觉得我可以计算出这个计划中的所有内容,除了实际扫描最上面一行和3列中的2列(日期和时间,但不是名称)。如果有人对如何解决这个问题有任何建议,或者我应该改变处理这个问题的方式,我将不胜感激,谢谢。我希望下面的示例能够回答您的问题 (这里我假设表是按日期和时间排序的,最早的警报位于表的顶部。)

我正在尝试创建一个应用程序,其中用户将时间和日期输入到
JTable
中,然后在该时间接收警报。我计划的方式是按时间顺序显示条目,最接近的条目在最上面一行,然后每5分钟与用户的日期/时间进行比较,直到它们匹配


我觉得我可以计算出这个计划中的所有内容,除了实际扫描最上面一行和3列中的2列(日期和时间,但不是名称)。如果有人对如何解决这个问题有任何建议,或者我应该改变处理这个问题的方式,我将不胜感激,谢谢。

我希望下面的示例能够回答您的问题

(这里我假设表是按日期和时间排序的,最早的警报位于表的顶部。)

import javax.swing.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.TimerTask;
import java.util.Timer;

public class DateTimeTable
{
  public static void main(String[] args)
  {
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTable table = new JTable(
        new String[][] {
            {"Water plants", "2019.01.12", "09:21"},
            {"Read Java book", "2019.01.12", "19:30"},
            {"Go to bed", "2019.01.12", "22:30"}},
        new String[] {"Name", "Date", "Time"});

    TimerTask task = new TimerTask()
    {
      @Override
      public void run()
      {
        String date = table.getValueAt(0, 1).toString();
        String time = table.getValueAt(0, 2).toString();
        LocalDateTime alertTime = LocalDateTime.parse(date + " " + time,
            DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm"));

        if (alertTime.isBefore(LocalDateTime.now()))
        {
          JOptionPane.showMessageDialog(f, table.getValueAt(0, 0));
        }
        else
        {
          System.out.println("No alerts");
        }
      }
    };

    Timer timer = new Timer();
    timer.schedule(task, 1000, 5 * 60 * 1000);

    f.getContentPane().add(new JScrollPane(table));
    f.setBounds(300, 200, 400, 300);
    f.setVisible(true);
  }
}