954,536 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

scrollbar applet

Hi folks, I have to answer the following question:

"Write an applet which contains a panel whose background colour varies as the elevators of three Scrollbar objects are varied. Each Scrollbar object affects one colour constituent."

I think I'm pretty close, but I can't figure out why only one of the scrollbars changes colour. They should change red, green, and blue respectively.
I'd be really grateful for any help on this one. Thanks!

/*applet which demonstrates the use of a canvas*/
import java.awt.*;

public class u extends java.applet.Applet
{
Canvas can;
Scrollbar s;
Color bg;
int b;
int g;
int r;

public void init()
{
setLayout(new GridLayout(1, 2, 10, 10));

bg = new Color(0, 0, 255);
can = new Canvas();
s = new Scrollbar(Scrollbar.VERTICAL, 0, 0, 0, 255);
can.setBackground(bg);
add(can);
add(s);
bg = new Color(0, 255, 0);
s = new Scrollbar(Scrollbar.VERTICAL, 0, 0, 0, 255);
can.setBackground(bg);
add(s);
bg = new Color(255, 0, 0);
s = new Scrollbar(Scrollbar.VERTICAL, 0, 0, 0, 255);
can.setBackground(bg);
add(s);
}

public boolean handleEvent(Event evt)
{
if (evt.target instanceof Scrollbar)
{
r = s.getValue();
g = s.getValue();
b = s.getValue();
bg = new Color(r, g, b);
can.setBackground(bg);
can.repaint();
}
return true;
}
}

bigriggers
Newbie Poster
2 posts since Jul 2005
Reputation Points: 10
Solved Threads: 0
 

This is your problem, you only have one instance of a scrollbar. You'll need to have 3 of them, and fix the handleevent so that it will check to see which one was fired.

server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
 

hi bigriggers,

as server crash had mentioned u have only one instance.

I have attached a running version. Hope this is what you are looking for:
I have made this into a awt standalone application

import java.awt.*;
import java.awt.event.*;

public class u extends Frame
{
Canvas can;
Scrollbar s1,s2,s3;
Color bg;
int b;
int g;
int r;

public u()
{
setLayout(new GridLayout(1, 2, 10, 10));
bg = new Color(0, 0, 255);
can = new Canvas();
s1 = new Scrollbar(Scrollbar.VERTICAL, 0, 0, 0, 255);
can.setBackground(bg);
add(can);
add(s1);

bg = new Color(0, 255, 0);
s2 = new Scrollbar(Scrollbar.VERTICAL, 0, 0, 0, 255);
can.setBackground(bg);
add(s2);

bg = new Color(255, 0, 0);
s3 = new Scrollbar(Scrollbar.VERTICAL, 0, 0, 0, 255);
can.setBackground(bg);
add(s3);


setSize(300,300);
setVisible(true);
}

public boolean handleEvent(Event evt)
{
if (evt.target instanceof Scrollbar)
{
r = s1.getValue();
g = s2.getValue();
b = s3.getValue();
bg = new Color(r, g, b);
can.setBackground(bg);
can.repaint();
}
return true;
}

public static void main(String args[])
{
new u();
}
}

cheenu78
Light Poster
45 posts since Jun 2005
Reputation Points: 10
Solved Threads: 0
 

Many thanks for the help guys, all done now. Much appreciated. :)

bigriggers
Newbie Poster
2 posts since Jul 2005
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You