aspose file tools*
The moose likes Swing / AWT / SWT and the fly likes displaying scroll messages at  the bottom of page Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "displaying scroll messages at  the bottom of page" Watch "displaying scroll messages at  the bottom of page" New topic
Author

displaying scroll messages at the bottom of page

siva sankar
Ranch Hand

Joined: Jul 13, 2006
Posts: 68
Hi,


i have written source code for scrolling text messages from right to left using applets,but the requirement is that the text should be scrolled from bottom of the page and it has start from corner of window applet.Please,can anyone suggest me on how to do this.


here is the source code;

import java.awt.*;
import java.applet.*;
import java.net.URL;

public class StringWalk extends Applet implements Runnable {

/*=======================
* Variable Declarations
*=======================*/

final static int MAX_SIZE = 100;
final static Cursor HAND = new Cursor(Cursor.HAND_CURSOR);
final static Cursor DEFAULT = new Cursor(Cursor.DEFAULT_CURSOR);

boolean isMoving;
int xx; // text location
int ntext; // number of text
int text_width; // text width
int width; // applet width
int height; // applet height
int delay; // time delay
int fontsize; // size of font
int mouse_x; // mouse x coordinate
int mouse_y; // mouse y coordinate
int selected; // selected caption

String[] s; // captions
String[] url; // urls
String[] target; // targets

Font font; // font face
FontMetrics fm; // font metrics
Thread runner;
Color fgcolor, bgcolor, accolor, bdcolor;

Image offscrImg; // double buffer image
Graphics offscr; // double buffer graphics


/*===========================
* Set Font and Color Method
*===========================*/

public void setFont() {
String fontface = getParameter("fontface");
if (fontface == null)
fontface = "Times Roman";

try { fontsize = Integer.parseInt(getParameter("fontsize")); }
catch (Exception e) { fontsize = 12; }

String fontstyle = getParameter("fontstyle");
if (fontstyle == null || fontstyle.equals("plain"))
font = new Font(fontface, Font.PLAIN, fontsize);
else if (fontstyle.equals("bold"))
font = new Font(fontface, Font.BOLD, fontsize);
else
font = new Font(fontface, Font.ITALIC, fontsize);

fm = offscr.getFontMetrics(font);
}

public void setColor() {
String c1 = getParameter("bgcolor");
String c2 = getParameter("fgcolor");
String c3 = getParameter("accolor");
String c4 = getParameter("bdcolor");

if (c1 == null) c1 = "255,255,255";
if (c2 == null) c2 = "000,000,000";
if (c3 == null) c3 = "255,000,000";
if (c4 == null) c4 = "150,150,150";

bgcolor = new Color(Integer.parseInt(c1.substring(0,3)),
Integer.parseInt(c1.substring(4,7)),
Integer.parseInt(c1.substring(8,11)));
fgcolor = new Color(Integer.parseInt(c2.substring(0,3)),
Integer.parseInt(c2.substring(4,7)),
Integer.parseInt(c2.substring(8,11)));
accolor = new Color(Integer.parseInt(c3.substring(0,3)),
Integer.parseInt(c3.substring(4,7)),
Integer.parseInt(c3.substring(8,11)));
bdcolor = new Color(Integer.parseInt(c4.substring(0,3)),
Integer.parseInt(c4.substring(4,7)),
Integer.parseInt(c4.substring(8,11)));
}

/*===================
* Initialize Method
*===================*/

public void init() {
isMoving = true;
runner = new Thread(this);
width = getSize().width;
height = getSize().height;
s = new String[MAX_SIZE];
url = new String[MAX_SIZE];
target = new String[MAX_SIZE];

offscrImg = createImage(width, height);
offscr = offscrImg.getGraphics();

runner.start();
setFont();
setColor();
try { delay = Integer.parseInt(getParameter("delay")); }
catch (Exception e) { delay = 50; }

String text;
ntext = text_width = xx = 0;
while ((text = getParameter("caption" + ntext)) != null) {
s[ntext] = text;
url[ntext] = getParameter("url" + ntext);
target[ntext] = getParameter("target" + ntext);
if (target[ntext] == null)
target[ntext] = "_parent";

text_width += fm.stringWidth(s[ntext]) + 20;
ntext++;
}
mouse_x = mouse_y = -text_width;

setSize(width,height);
offscr.setFont(font);
}

/*=========================
* Paint and Update Method
*=========================*/

public void paint(Graphics g) {
int c = 0;
int i = xx;
int h = (height + fontsize)/2 ;
selected = 1;
boolean f = false;

while (s[c] != null && i < width) {
int w = fm.stringWidth(s[c]);
offscr.setColor(fgcolor);
if (mouse_x >= i && mouse_x <= i + w
&& mouse_y <= h && mouse_y >= h - fontsize) {
offscr.setColor(accolor);
offscr.drawLine(i, h , i + w, h );
f = true;
selected = c;
}
offscr.drawString(s[c], i, h);

i += w + 80;
if (++c >= ntext)
c = 0;
}
if (f)
setCursor(HAND);
else
setCursor(DEFAULT);

g.drawImage(offscrImg, 0, 0, this);
offscr.clearRect(0,0, getSize().width, getSize().height);
offscr.setColor(bgcolor);
offscr.fillRect(0, 0, getSize().width, getSize().height);
offscr.setColor(bdcolor);
offscr.drawRect(0, 0, getSize().width+1, getSize().height+1);

if (isMoving)
xx--;
if (i < -text_width)
xx = 0;
}

public void update(Graphics g) {
paint(g);
}

/*==============
* Mouse Method
*==============*/

public boolean mouseEnter(Event evt, int x, int y) {
isMoving = false;
return true;
}

public boolean mouseExit(Event evt, int x, int y) {
isMoving = true;
mouse_x = -text_width;
mouse_y = -text_width;
return true;
}

public boolean mouseMove(Event evt, int x, int y) {
mouse_x = x++;
mouse_y = y++;
return true;
}

public boolean mouseUp(Event evt, int x, int y) {
if (selected != -1 && url[selected] != null) {
try {
getAppletContext().showDocument(new URL(url[selected]), target[selected]);
}
catch (Exception e) { }
}
return true;
}

/*===============
* Thread Method
*===============*/

public void run() {
while(true) {
try { runner.sleep(delay); }
catch (Exception e) { }
repaint();
}
}
}



Thanks in Advance,
regards,
Siva Sankar.
Michael Dunn
Ranch Hand

Joined: Jun 09, 2003
Posts: 4632
too much unformatted code to read through (hint: use the code tags),
so here's a simple example from your description



you should also ask for your duplicated post to be closed
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: displaying scroll messages at the bottom of page