I have the following classes:
- MainServer
- TCPServer
- UDPServer
I create new instances of TCPServer and UDPServer classes (start) from MainServer class, where my GUI is initialized. In this GUI I have a textArea, which either TCP or UDP classes needs to update to display log information (errors, status, etc). I did some search and I know i may need to use EDT in MainServer, but dont know how to access this object in MainServer class from TCPServer or UDPServer. Right now I can only print to console which is undesirable. How to access MainServer.printlog from TCPServer? or Mainserver.textArea object? If I create a new MainServer instance from TCPServer or UDPServer this seems not to be working.
This is my function in MainServer class:
public void printLog (final String log, final int level) {
SwingUtilities.invokeLater(
new Runnable()
{
public void run()
{
if (level == 1)
textArea.append("INFO\t" + log);
if (level == 2)
textArea.append("WARN\t" + log);
if (level == 3)
textArea.append("ERROR\t" + log);
}
}
);
}
Edit: I tried to create a new instance of MainServer
and access printLog
but I get:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at MultithreadedBarcodeReader.MultithreadedBarcodeReaderServer$2.run( MultithreadedBarcodeReaderServer.java:68) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:682) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:643) at java.awt.EventQueue$1.run(EventQueue.java:641)