Solved

forcing Java to process messages

Posted on 1997-08-18
4
1,086 Views
Last Modified: 2008-03-06
Hi!
 How would I force my program to look if there are any
 messages waiting in the queue and if any, proccess them.  Something like DoEvents in  VisualBasic or  Application.processMessages in Delphi.
 I.e. I have this loop I want to stop when user clicks the   stop button. Now, no messages are handled while the loop is
 running.
0
Comment
Question by:brat072297
  • 2
  • 2
4 Comments
 
LVL 5

Expert Comment

by:msmolyak
ID: 1225278
How about design like the following:

public class QueueProcessor {
private Queue theQueue;

public synchrinized Message getMesage() {
   while (theQueue.isEmpty()) {
      try {
         wait();
      } catch (InterruptedException e) {}
   }
   Message msg = theQueue.getMessage();  
   return msg;
}

public synchronized void putMessage(Message msg)
{
  theQueue.putMessage(msg);
  notify();
}
}

Classes Queue and Message are hypothetical classes whose meaning should be clear from the names and context.
0
 

Author Comment

by:brat072297
ID: 1225279
I tried the "wait" solution myself, but it doesn't do the job.
I don't want my code to wait for the message.
If there's no "desired" event (not ANY event),  I want it to perform some other actions.
0
 

Author Comment

by:brat072297
ID: 1225280
Maybe I wasn't clear enough. I want may app to see if the button
was clicked while the loop is running. If it was clicked then exit the loop otherwise continue. But Java doesn't allow handleEvent method to be called while the loop is running. As I said this was(is) trival in VB and Delphi, but in Java........
0
 
LVL 5

Accepted Solution

by:
msmolyak earned 100 total points
ID: 1225281
I still believe that you need at least two therads. If you want the main thread to run while the other thread processes the button click, let it run in a try block with InterruptedException in the catch part. Thus when the button is clicked, you can interrupt the running thread and handle that event in the catch block.

Is that what you are looking for?
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question