0
Banner Applet
Banner Applet is an applet application which continuously rotates the text chars after given time interval.
For Example,
This is Demo.
his is Demo.T
is is Demo.Th
…
How to write program for this?
- We need applet first. Will follow the applet life cycle
import java.applet.*; import java.awt.*; public class bannerDemo extends Applet { public void init() { } public void paint(Graphics g) { } } /* <applet code="bannerDemo" width="500" height="150"></applet> */
- We want to draw a String on applet area. Which can be done by calling drawString() method of Graphics class inside paint() method.
public void paint(Graphics g) { Font f = new Font("Arial",Font.BOLD,36); g.setFont(f); g.drawString("Ankit Virparia (ankit.co)",50,75); }
- We want continuous change in the text which we have printed so, Will go for multithreading.
public class bannerDemo extends Applet implements Runnable { Thread t; public void run() {} }
- Here one extra thread will be given a responsibility to update the text given (which is stored in a global variable – I mean common between paint() and run() methods)
public class bannerDemo extends Applet implements Runnable { Thread t; String msg = "Ankit Virparia (ankit.co)"; public void run() { try { while(true) { t.sleep(1000); char c = msg.charAt(0); String tmp = msg.substring(1,msg.length()); msg = tmp + c; repaint(); } } catch(Exception e) { System.out.println(e); } } public void paint(Graphics g) { Font f = new Font("Arial",Font.BOLD,36); g.setFont(f); g.drawString(msg,50,75); } }
- We need to start the thread in the beginning. Which can be written in init() method.
Thread t; public void init() { t = new Thread(this); t.start(); }
- paint() is invoked only when a user does GUI related change. But here in our case we want to invoke paint() at the interval of 1 second.
- We are ready to go!
Program for Banner Applet
File Name:bannerDemo.java
import java.applet.*; import java.awt.*; public class bannerDemo extends Applet implements Runnable { Thread t; String msg = "Ankit Virparia (ankit.co)"; public void init() { t = new Thread(this); t.start(); } public void run() { try { while(true) { t.sleep(1000); char c = msg.charAt(0); String tmp = msg.substring(1,msg.length()); msg = tmp + c; repaint(); } } catch(Exception e) { System.out.println(e); } } public void paint(Graphics g) { Font f = new Font("Arial",Font.BOLD,36); g.setFont(f); g.drawString(msg,50,75); } } /* <applet code="bannerDemo" width="500" height="150"></applet> */
Recent Comments