aspose file tools*
The moose likes Beginning Java and the fly likes Applets  Bars Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Applets  Bars" Watch "Applets  Bars" New topic
Author

Applets Bars

Mike Meakin
Ranch Hand

Joined: Dec 30, 2004
Posts: 88
I have this code which producers some 'verticle' colourd bars in an Applet. How should I alter the code to make the bars appear horizontal ?
heres the code:

package untitled4;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.Color.*;

public class Applet1 extends Applet {
boolean isStandalone = false;

Color colours[] = {Color.black, Color.blue, Color.cyan,
Color.darkGray, Color.gray, Color.green, Color.lightGray,
Color.magenta, Color.orange, Color.pink, Color.red,
Color.white, Color.yellow};

public void paint(Graphics bars)
//this method displays the applet using the Graphics class to draw it.
{
int incX = 260/colours.length;
for (int i = 0; i < colours.length; i++)
{
bars.setColor(colours[i]);
bars.fillRect(i * incX, 0, (i + 1) * incX, 260);
}
}
/**Get a parameter value*/
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}

/**Construct the applet*/
public Applet1() {
}
/**Initialize the applet*/
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
/**Component initialization*/
private void jbInit() throws Exception {
}
/**Get Applet information*/
public String getAppletInfo() {
return "Applet Information";
}
/**Get parameter info*/
public String[][] getParameterInfo() {
return null;
}
/**Main method*/
public static void main(String[] args) {
Applet1 applet = new Applet1();
applet.isStandalone = true;
Frame frame;
frame = new Frame() {
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public synchronized void setTitle(String title) {
super.setTitle(title);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
}
};
frame.setTitle("Applet Frame");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(260,300);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
}
}
Ken Loh
Ranch Hand

Joined: Feb 16, 2005
Posts: 190
I'm "code"ing your post so that it's easier to read.

Originally posted by Michael Munro:
I have this code which producers some 'verticle' colourd bars in an Applet. How should I alter the code to make the bars appear horizontal ?
heres the code:

Mike Meakin
Ranch Hand

Joined: Dec 30, 2004
Posts: 88
Oh, I forgot to mention, I have been told: "Simply add the code as is, without import statements or a 'class', to the previously generated program, replacing the similary named method therein."

thats what it says in my text book, which just sounds confusing.
Ken Loh
Ranch Hand

Joined: Feb 16, 2005
Posts: 190
If I were you I would concentrate on the paint method as I could see that it calls fillRect().

As you want to change from displaying vertical to horizontal lines(or was it the other way around?) why not just swap the values for the x and y argument to fillRect() ?

Originally posted by Michael Munro:


Mike Meakin
Ranch Hand

Joined: Dec 30, 2004
Posts: 88
Thanks, but I'm not sure how to do that

[ April 17, 2005: Message edited by: Michael Munro ]
[ April 17, 2005: Message edited by: Michael Munro ]
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Well, the first step to solving the problem is to understand what the paint method currently is doing. Do you understand that?


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Mike Meakin
Ranch Hand

Joined: Dec 30, 2004
Posts: 88
Yes I undestand that, I think its the bit which has (graphics bars) in brackets, obviously the code needs to coorespond to that.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
So, how would you explain what the bars.fillRect line is doing?
Mike Meakin
Ranch Hand

Joined: Dec 30, 2004
Posts: 88
Thats where the lines appear in the applet but it doesn't control if the go verticle or horizontal. at least I don't think they do.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Well, yes, it does, kind of. Do you know what the parameters to the fillRect method mean? If not, you should research that at http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics.html
Mike Meakin
Ranch Hand

Joined: Dec 30, 2004
Posts: 88
Yes I can do most of that, I can drawArc, drawRect, drawOval and put the measuments in etc...
But there is no infomation there for what I need to do. The code I have above displays vertical bars I need to alter that so they display horizontally. Its not a draw." " type code.
Ryan McGuire
Ranch Hand

Joined: Feb 18, 2005
Posts: 1012
    
    3
Originally posted by Michael Munro:
Thats where the lines appear in the applet but it doesn't control if the go verticle or horizontal. at least I don't think they do.


1. If you look at just one bar (let's say the BLUE one), what determines whether it's horizontal or vertical?

2. Next, let's say all the bars are square (width==height). What would determine whether they were horizontal or vertical stripes?

I'll answer that one: It's their positions relative to each other. If the squares are in a stack on top of each other, they'd look like short wide horizontal stripes. On the other hand, if they are next to each other then they would look like short wide vertical stripes.

3. Ok, so how are "on top of each other" and "next to each other" expressed in terms of the method arguments in the code you have? i.e. Fill in the blanks in this: "The ___th argument of the ____ call for each successive colored bar is ____."

You've been led to the water, but you're going to have to do the drinking yourself.

Ryan
Mike Meakin
Ranch Hand

Joined: Dec 30, 2004
Posts: 88
Iv'e don it now anyway:

int incY = 260/colours.length;
for (int i = 0; i < colours.length; i++)
{
bars.setColor(colours[i]);
bars.fillRect(0, i * incY, 260, (i + 1) * incY);



[ April 18, 2005: Message edited by: Michael Munro ]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Applets Bars