Solved

Performance problem loading XML message on a applet in order to display them on a text scroll view.

Posted on 2007-12-04
3
207 Views
Last Modified: 2013-12-29
Hi,
   I got a problem trying to load XML messages from a URL on an Applet update() method. The applet is used to diaply a text scroll; what happes is when the update method is called (because the current messages are about to passed) is freezing the scrolling effect for a sec. Any ideas how I can handle this?

Regards,

Carlos M.  
public synchronized void update(Graphics g) {
		
		int limit = theListOfList.size();
		for (int n = 0;n<limit;n++){ 
		 
			for (Message m : theListOfList.elementAt(n).messages) {
				m.X--;
				
				
				
			}
			if ((theListOfList.elementAt(n).messages.lastElement().X + theListOfList.elementAt(n).messages.lastElement().messageSize)- totalLarge == theListOfList.elementAt(n).totalListBufferSize) {
 
			
				currentListPoss = nextListPoss;
				
				loadMessages(theListOfList.elementAt(n).messages.lastElement().X+ theListOfList.elementAt(n).messages.lastElement().messageSize);
            
			}
 
		}
		
 
		 paint(g);
	}
 
 
This is the loadmessages method:
 
public synchronized void loadMessages(int X) {
		System.out.println(currentListPoss);
		ListOfMessages currentList = new ListOfMessages();
		
 
		try {
			
			DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
			Document doc = docBuilder
					.parse("http://65.38.219.91/29960/test/getmessages2.php");
			NodeList listOfitems = doc.getElementsByTagName("item");
 
			for (int s = 1; s < listOfitems.getLength(); s++) {
 
				Node item = listOfitems.item(s);
				receiver.add(item.getTextContent().trim());
 
			}// end of for loop with s var
 
		} catch (SAXParseException err) {
		
 
		} catch (SAXException e) {
			Exception x = e.getException();
			// System.out.println(e);
			((x == null) ? e : x).printStackTrace();
 
		} catch (Throwable t) {
			t.printStackTrace();
			// System.out.println(t);
		}
		
 
 
         int i =0;
		for (String s : receiver) {
			
			Message currentMsg = new Message(s, X);
			
			
			currentList.messages.add(generateImg(currentMsg));
			currentList.totalListSize += currentMsg.messageSize;
			
			X = X + currentMsg.messageSize;
			
			i++;
		}
		currentList.totalListBufferSize = (int) (currentList.totalListSize * 0.30);
 
		theListOfList.add(currentListPoss, currentList);
		if (currentListPoss == messageQueueLimit - 1) {
			nextListPoss = 0;
		} else {
			nextListPoss = currentListPoss + 1;
 
		}
 
	}

Open in new window

0
Comment
Question by:cmercado_miranda
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 92

Expert Comment

by:objects
ID: 20408060
you need to handle the loading of xml in a seperate thread.
0
 

Author Comment

by:cmercado_miranda
ID: 20411413
How can I do that, any example of calling a tread on a applet?
0
 
LVL 92

Accepted Solution

by:
objects earned 250 total points
ID: 20415858
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

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

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…
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
Suggested Courses

623 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