From a45a849db5a4d20e9a64f9cda43e8c35191134d3 Mon Sep 17 00:00:00 2001 From: gracchen Date: Thu, 9 Mar 2023 20:30:02 -0800 Subject: [PATCH] Working always on front during break + reset alarm --- try1/GUI.java | 73 +++++++++++++++++++++++++++++++------------------- try1/Main.java | 5 ++-- 2 files changed, 49 insertions(+), 29 deletions(-) diff --git a/try1/GUI.java b/try1/GUI.java index 37238e3..6adab61 100644 --- a/try1/GUI.java +++ b/try1/GUI.java @@ -9,31 +9,29 @@ import javax.swing.JLabel; public class GUI extends JFrame { - private int workMin, breakSec; - private JLabel clock, startText, endText; + private int workMin, breakSec, pollTime; + private JLabel endText, msg; private JButton button; - public LocalDateTime start, alarm; - public GUI() { + public LocalDateTime now, alarm; + public GUI(int pollTime) { super("Eye Saver"); setLayout(new FlowLayout()); //default + this.pollTime = pollTime / 1000 + 5; //convert to sec with leeway of 5 sec lag workMin = 1; breakSec = 20; - clock = new JLabel(); - startText = new JLabel(); + msg = new JLabel(); endText = new JLabel(); - start = LocalDateTime.now(); //Date.setTime - alarm = start.plusMinutes(workMin); + now = LocalDateTime.now(); //Date.setTime + alarm = now.plusMinutes(workMin); - clock.setText("current time: " + makeString(start)); - startText.setText("alarm started on " + makeString(start)); //set start of alarm - endText.setText("alarm going off on " + makeString(alarm)); //set start of alarm + msg.setText("work!"); + endText.setText("ALARM @ " + makeString(alarm)); - button = new JButton("update time"); + button = new JButton("reset alarm"); Handler handler = new Handler(); button.addActionListener(handler); - add(clock); - add(startText); + add(msg); add(endText); add(button); } @@ -44,27 +42,48 @@ public String makeString (LocalDateTime now) { private class Handler implements ActionListener { public void actionPerformed(ActionEvent e) { - clock.setText("current time: " + makeString(LocalDateTime.now())); + alarm = LocalDateTime.now().plusMinutes(workMin); + endText.setText("ALARM @ " + makeString(alarm)); } } public void update() { - clock.setText("current time: " + makeString(LocalDateTime.now())); - - if (LocalDateTime.now().isAfter(alarm)) //alarm time passed + if (LocalDateTime.now().minusSeconds(pollTime).isBefore(now)) //if within 5 sec of last poll { - if (LocalDateTime.now().minusSeconds(5).isBefore(alarm)) //if within 5 sec of alarm time - { - startText.setText("HOORAYYYY Alarm reached!!!!"); - } - else //computer sleeped, reset alarm + now = LocalDateTime.now(); + if (LocalDateTime.now().isAfter(alarm)) //alarm time passed { - start = LocalDateTime.now(); - alarm = start.plusMinutes(workMin); - startText.setText("alarm started on " + makeString(start)); //set start of alarm - endText.setText("UDPATE: alarm on " + makeString(alarm)); //set start of alarm + hackyToFront(); + resetAlarm(); + msg.setText("HOORAYYYY! now break"); } } + else //computer sleeped, reset alarm + { + resetAlarm(); + } } + private void resetAlarm() { + now = LocalDateTime.now(); + alarm = LocalDateTime.now().plusMinutes(workMin); + endText.setText("new ALARM @ " + makeString(alarm)); + } + + private void hackyToFront( ) + { + + //toFront(); + setAlwaysOnTop(true); + setExtendedState(JFrame.NORMAL); + //setVisible(true); + try { + Thread.sleep(1000*breakSec); + } catch (InterruptedException e) { + e.printStackTrace(); + } + setAlwaysOnTop(false); + setExtendedState(JFrame.ICONIFIED); + toBack(); + } } diff --git a/try1/Main.java b/try1/Main.java index 00de8c4..e8f5fac 100644 --- a/try1/Main.java +++ b/try1/Main.java @@ -4,7 +4,8 @@ public class Main { public static void main(String[] args) { - GUI window = new GUI(); + int pollTime = 1 * 1000; //every minute + GUI window = new GUI(pollTime); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setSize(275,180); window.setVisible(true); @@ -12,7 +13,7 @@ public static void main(String[] args) { while(true) { try { - Thread.sleep(1000); + Thread.sleep(pollTime); } catch (InterruptedException e) { e.printStackTrace(); }