0

I am developing one java swing application for task remainder.Please find the below code for the same.But the problem is i am not able to maintain session here since i am using ScheduledExecutorService class which will help to trigger this Swing app one hour once.When triggering new one all changes has been made in previous session of app is gone.

Kindly help me on this and let me know how can i use session on my Swing application.

Example : If you run the below app yon can see two buttons when we click on button it will change color to "green" and status change to "Done" but when the application trigger after one minute all changes were erased launching as new one.

import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.awt.Toolkit;

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import java.util.Timer;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class Taskschdeuler {

   private final static ScheduledExecutorService scheduler =      Executors.newScheduledThreadPool(1);

public static void main(String[] args) {


final Runnable beeper = new Runnable() 
{
   public void run() 
   { 
      // do anything here that you want to execute in a scheduler.
      Task r=new Task();
   }
};
final ScheduledFuture<?> beeper1 = scheduler.scheduleAtFixedRate(beeper, 0,   1, TimeUnit.MINUTES);

}
}

class Task extends JFrame implements ActionListener
{
JButton b1,b2,b3;
JLabel l1,l2;
public Task()
{
    l1=new JLabel("Pending");
    l2=new JLabel("Pending");
    b1=new JButton("AVM DART");
    b2=new JButton("HANDSHAKE");
    b3=new JButton("Remind me later!!");
    add(b1);
    add(l1);
    add(b2);
    add(l2);
    add(b3);
    b1.setBackground(Color.PINK);
    b2.setBackground(Color.PINK);
    b3.setBackground(Color.CYAN);
    b1.setPreferredSize(new Dimension(200, 50));
    b2.setPreferredSize(new Dimension(200, 50));
    b1.addActionListener(this);
    b2.addActionListener(this);
    b3.addActionListener(this);
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice defaultScreen = ge.getDefaultScreenDevice();
    Rectangle rect = defaultScreen.getDefaultConfiguration().getBounds();
    int x = (int) rect.getMaxX() -300;
    int y = 500;
    setLocation(x, y);
    setLayout(new FlowLayout());
    setVisible(true);
    setSize(300, 200);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {

    Object source = e.getSource();
    if(e.getSource()==b1)
    {
        if (((Component)source).getBackground().equals(Color.GREEN))
        {
            ((Component)source).setBackground(Color.PINK);
            l1.setText("Pending");
        } 
        else 
        {
            ((Component)source).setBackground(Color.GREEN);
            l1.setText("   Done");
        }

    }
    if(e.getSource()==b2)
    {
        if (((Component)source).getBackground().equals(Color.GREEN))
        {
            ((Component)source).setBackground(Color.PINK);
            l2.setText("Pending");

        } else 
        {
            ((Component)source).setBackground(Color.GREEN);
            l2.setText("   Done");
        }
    }

    if(e.getSource()==b3)
    {
        setVisible(false);
    }


    }

}
  • I don't understand your problem, please clarify. – Mordechai Oct 06 '16 at 17:36
  • The problem is the above application will be triggered one hour once to remain the user about their task .When the above application relaunch after one hour .The saved data in the application has been deleted .I need to maintain that data even though it relaunch after an hour. – Vetri Selvan Oct 06 '16 at 17:43
  • 1
    Use `Preferences`, for [example](http://stackoverflow.com/a/34616583/230513). – trashgod Oct 07 '16 at 07:26

0 Answers0