Trying to control the position of buffered graphics

I just learned how to use double buffering but now I am having trouble position my graphics. I want to put my graphics in the middle of my applet and also my components do not show up.

Here is my code. It may be a little confusing because I commented out some code that I used previously for painting and positioning the graphics. Good luck.

import java.lang.Integer;

import java.awt.*;

import java.awt.event.*;

import java.awt.font.*;

import java.awt.geom.*;

import java.awt.image.*;

import java.awt.event.ItemListener;

import java.awt.event.ItemEvent;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import javax.swing.*;

import java.awt.Graphics.*;

import javax.swing.*;

import java.awt.*;

import javax.swing.text.*;

import javax.swing.event.*;

import java.awt.event.*;

import javax.swing.JApplet.*;

import javax.swing.JFrame.*;

import java.applet.Applet;

import javax.swing.border.*;

import javax.swing.Spring.*;

import java.awt.geom.AffineTransform;

import java.awt.Graphics2D;

//Class definition

public class Shapeshift extends JApplet{

private int x;

private int a;

private int b;

private int c;

private int d;

private int q;

private int f;

private int z;

int y = 300;

int g= 5;

int w = 20;

int h = 10;

int panelheight = 100;

int panelwidth = 540;

//Text

int ty = 10;

int tx = 10;

int twid = 40;

int thei = 20;

int bwid = 50;

int bhei = 20;

//Defining textfields

JTextField Lfield = new JTextField(5);

JTextField Rfield = new JTextField(5);

JTextField rfield = new JTextField(5);

JTextField Hfield = new JTextField(5);

JTextField tfield = new JTextField(5);

JTextField hfield = new JTextField(5);

JTextField lfield = new JTextField(5);

public void paint(Graphics g) {

//super.paint(g);

//Graphics2D g2 = (Graphics2D) g;

//Dimension d = getSize();

// The object we will use to write with instead of the standard screen graphics

Graphics bufferGraphics;

// The image that will contain everything that has been drawn on

// bufferGraphics.

Image offscreen;

// To get the width and height of the applet.

Dimension dim;

dim = getSize();

//setBackground(Color.black);

// Create an offscreen image to draw on

// Make it the size of the applet, this is just perfect, Larger

// size could slow it down unnecessarily.

offscreen = createImage(dim.width,dim.height);

// by doing this everything that is drawn by bufferGraphics

// will be written on the offscreen image.

bufferGraphics = offscreen.getGraphics();

int w = dim.width;

int h = dim.height;

//AffineTransform saveXform = bufferGraphics.getTransform();

AffineTransform toCenterAt = new AffineTransform();

toCenterAt.translate(w/2, h/2);

/*g2.transform(toCenterAt);

g2.setColor(Color.yellow);

g2.fillRect(-25, 30-a, 25+x, 10);

g2.fillRect(-25, 70+a, 25+x, 10);

g2.fillRect(50-x, -30-a, 25+x, 10);

g2.fillRect(50-x, 70+a, 25+x, 10);

g2.setColor(Color.blue);

g2.fillRect(-25, -40-a, 100, 10);

g2.fillRect(-25, 80+a, 100, 10);

g2.setColor(Color.gray);

g2.fillRect(200, 0+f, 50 - (2*x), 50-(2*f));

g2.fillRect(-25, -20-a, x + 25, 90+(2*a));

g2.fillRect(50-x, -20-a, 25+x, 90+(2*a));*/

//bufferGraphics.transform(toCenterAt);

bufferGraphics.setColor(Color.yellow);

//bufferGraphics.clearRect(0,0,dim.width,dim.width);

bufferGraphics.fillRect(-25, -30-a, 25+x, 10);

bufferGraphics.fillRect(-25, 70+a, 25+x, 10);

bufferGraphics.fillRect(50-x, -30-a, 25+x, 10);

bufferGraphics.fillRect(50-x, 70+a, 25+x, 10);

bufferGraphics.setColor(Color.blue);

bufferGraphics.fillRect(-25, -40-a, 100, 10);

bufferGraphics.fillRect(-25, 80+a, 100, 10);

bufferGraphics.setColor(Color.gray);

bufferGraphics.fillRect(x, 0+f, 50 - (2*x), 50-(2*f));

bufferGraphics.fillRect(-25, -20-a, x + 25, 90+(2*a));

bufferGraphics.fillRect(50-x, -20-a, 25+x, 90+(2*a));

// Wipe off everything that has been drawn before

// Otherwise previous drawings would also be displayed.

// draw the rect at the current mouse position

// to the offscreen image

// draw the offscreen image to the screen like a normal image.

// Since offscreen is the screen width we start at 0,0.

g.drawImage(offscreen,0,0,this);

repaint();

}

public void update(Graphics g)

{

paint(g);

}

public void init() {

//Defining buttons(in an array)

JButton buttons[] = new JButton[14];

buttons[0] = new JButton("UP");

buttons[1] = new JButton("DOWN");

buttons[2] = new JButton("UP");

buttons[3] = new JButton("DOWN");

buttons[4] = new JButton("UP");

buttons[5] = new JButton("DOWN");

buttons[6] = new JButton("UP");

buttons[7] = new JButton("DOWN");

buttons[8] = new JButton("UP");

buttons[9] = new JButton("DOWN");

buttons[10] = new JButton("UP");

buttons[11] = new JButton("DOWN");

buttons[12] = new JButton("UP");

buttons[13] = new JButton("DOWN");

//Defining panels

JPanel dimension = new JPanel();

//Setting initial text values to zero

int start = 0;

Lfield.setText(start + "");

Rfield.setText(start + "");

rfield.setText(start + "");

lfield.setText(start + "");

tfield.setText(start + "");

Hfield.setText(start + "");

hfield.setText(start + "");

//Setting up SpringLayout

SpringLayout spring = new SpringLayout();

SpringLayout spring2 = new SpringLayout();

Container c = getContentPane();

c.setLayout(spring);

Spring width = Spring.constant(w);

Spring height = Spring.constant(h);

Spring xvalue = Spring.constant(g);

Spring yvalue = Spring.constant(y);

Spring xxvalue = spring.getConstraint(SpringLayout.WEST, c);

Spring yyvalue = spring.getConstraint(SpringLayout.SOUTH, c);

//Panel 1 parameters

Spring panwidthr = spring.getConstraint(SpringLayout.EAST, c);

Spring panheight = Spring.constant(panelheight);

Spring panwidth = Spring.sum(panwidthr, Spring.minus(xvalue));

Spring ypandisp = Spring.sum(yyvalue, Spring.minus(Spring.sum(xvalue,panheight)));

Spring dxvalue = spring2.getConstraint(SpringLayout.WEST, dimension);

Spring dyvalue = spring2.getConstraint(SpringLayout.NORTH, dimension);

//text parameters

Spring txx = Spring.constant(tx);

Spring tyy = Spring.constant(ty);

Spring twidth = Spring.constant(twid);

Spring theight = Spring.constant(thei);

//button parameters

JButton up = new JButton();

Spring b1x = Spring.sum(txx,twidth);

Spring b1width = Spring.constant(bwid);

Spring b1height = Spring.constant(bhei);

Spring b1y = Spring.sum(tyy,b1height);

Spring b2x = Spring.sum(b1x, Spring.sum(b1x,b1width));

//text1 x position

Spring t1xx = Spring.sum(b2x,Spring.minus(twidth));

Spring t3x = Spring.sum(b2x, Spring.sum(txx,b1width));

Spring b3x = Spring.sum(t3x,twidth);

Spring t4x = Spring.sum(b3x,Spring.sum(txx,b1width));

Spring b4x = Spring.sum(b3x,Spring.sum(b1x,b1width));

Spring t5x = Spring.sum(b4x,Spring.sum(txx,b1width));

Spring b5x = Spring.sum(b4x,Spring.sum(b1x,b1width));

Spring t6x = Spring.sum(b5x,Spring.sum(txx,b1width));

Spring b6x = Spring.sum(b5x,Spring.sum(b1x,b1width));

Spring t7x = Spring.sum(b6x,Spring.sum(txx,b1width));

Spring b7x = Spring.sum(b6x,Spring.sum(b1x,b1width));

//Adding features to panel

TitledBorder dampdim = new TitledBorder("Damper Dimensions");

dimension.setBorder(dampdim);

dimension.setLayout(spring2);

//Adding features to L up button

up.setText("UP");

up.setFont( new Font( "UP", Font.BOLD, 2));

up.addActionListener(new T1C());

buttons[1].addActionListener(new T2C());

buttons[2].addActionListener(new T3C());

buttons[3].addActionListener(new T4C());

buttons[4].addActionListener(new T5C());

buttons[5].addActionListener(new T6C());

buttons[6].addActionListener(new T7C());

buttons[7].addActionListener(new T8C());

buttons[8].addActionListener(new T9C());

buttons[9].addActionListener(new T10C());

buttons[10].addActionListener(new T11C());

buttons[11].addActionListener(new T12C());

buttons[12].addActionListener(new T13C());

buttons[13].addActionListener(new T14C());

//Component positioning

c.add(dimension);

spring.getConstraints(dimension).setX(xvalue);

spring.getConstraints(dimension).setY(ypandisp);

spring.getConstraints(dimension).setWidth(panwidth);

spring.getConstraints(dimension).setHeight(panheight);

dimension.add(Lfield);

spring2.getConstraints(Lfield).setX(txx);

spring2.getConstraints(Lfield).setY(tyy);

spring2.getConstraints(Lfield).setWidth(twidth);

spring2.getConstraints(Lfield).setHeight(theight);

dimension.add(up);

spring2.getConstraints(up).setX(b1x);

spring2.getConstraints(up).setY(tyy);

spring2.getConstraints(up).setWidth(b1width);

spring2.getConstraints(up).setHeight(b1height);

dimension.add(buttons[1]);

spring2.getConstraints(buttons[1]).setX(b1x);

spring2.getConstraints(buttons[1]).setY(b1y);

spring2.getConstraints(buttons[1]).setWidth(b1width);

spring2.getConstraints(buttons[1]).setHeight(b1height);

dimension.add(Rfield);

spring2.getConstraints(Rfield).setX(t1xx);

spring2.getConstraints(Rfield).setY(tyy);

spring2.getConstraints(Rfield).setWidth(twidth);

spring2.getConstraints(Rfield).setHeight(theight);

dimension.add(buttons[2]);

spring2.getConstraints(buttons[2]).setX(b2x);

spring2.getConstraints(buttons[2]).setY(tyy);

spring2.getConstraints(buttons[2]).setWidth(b1width);

spring2.getConstraints(buttons[2]).setHeight(b1height);

dimension.add(buttons[3]);

spring2.getConstraints(buttons[3]).setX(b2x);

spring2.getConstraints(buttons[3]).setY(b1y);

spring2.getConstraints(buttons[3]).setWidth(b1width);

spring2.getConstraints(buttons[3]).setHeight(b1height);

dimension.add(rfield);

spring2.getConstraints(rfield).setX(t3x);

spring2.getConstraints(rfield).setY(tyy);

spring2.getConstraints(rfield).setWidth(twidth);

spring2.getConstraints(rfield).setHeight(theight);

dimension.add(buttons[4]);

spring2.getConstraints(buttons[4]).setX(b3x);

spring2.getConstraints(buttons[4]).setY(tyy);

spring2.getConstraints(buttons[4]).setWidth(b1width);

spring2.getConstraints(buttons[4]).setHeight(b1height);

dimension.add(buttons[5]);

spring2.getConstraints(buttons[5]).setX(b3x);

spring2.getConstraints(buttons[5]).setY(b1y);

spring2.getConstraints(buttons[5]).setWidth(b1width);

spring2.getConstraints(buttons[5]).setHeight(b1height);

dimension.add(lfield);

spring2.getConstraints(lfield).setX(t4x);

spring2.getConstraints(lfield).setY(tyy);

spring2.getConstraints(lfield).setWidth(twidth);

spring2.getConstraints(lfield).setHeight(theight);

dimension.add(buttons[6]);

spring2.getConstraints(buttons[6]).setX(b4x);

spring2.getConstraints(buttons[6]).setY(tyy);

spring2.getConstraints(buttons[6]).setWidth(b1width);

spring2.getConstraints(buttons[6]).setHeight(b1height);

dimension.add(buttons[7]);

spring2.getConstraints(buttons[7]).setX(b4x);

spring2.getConstraints(buttons[7]).setY(b1y);

spring2.getConstraints(buttons[7]).setWidth(b1width);

spring2.getConstraints(buttons[7]).setHeight(b1height);

dimension.add(tfield);

spring2.getConstraints(tfield).setX(t5x);

spring2.getConstraints(tfield).setY(tyy);

spring2.getConstraints(tfield).setWidth(twidth);

spring2.getConstraints(tfield).setHeight(theight);

dimension.add(buttons[8]);

spring2.getConstraints(buttons[8]).setX(b5x);

spring2.getConstraints(buttons[8]).setY(tyy);

spring2.getConstraints(buttons[8]).setWidth(b1width);

spring2.getConstraints(buttons[8]).setHeight(b1height);

dimension.add(buttons[9]);

spring2.getConstraints(buttons[9]).setX(b5x);

spring2.getConstraints(buttons[9]).setY(b1y);

spring2.getConstraints(buttons[9]).setWidth(b1width);

spring2.getConstraints(buttons[9]).setHeight(b1height);

dimension.add(Hfield);

spring2.getConstraints(Hfield).setX(t6x);

spring2.getConstraints(Hfield).setY(tyy);

spring2.getConstraints(Hfield).setWidth(twidth);

spring2.getConstraints(Hfield).setHeight(theight);

dimension.add(buttons[10]);

spring2.getConstraints(buttons[10]).setX(b6x);

spring2.getConstraints(buttons[10]).setY(tyy);

spring2.getConstraints(buttons[10]).setWidth(b1width);

spring2.getConstraints(buttons[10]).setHeight(b1height);

dimension.add(buttons[11]);

spring2.getConstraints(buttons[11]).setX(b6x);

spring2.getConstraints(buttons[11]).setY(b1y);

spring2.getConstraints(buttons[11]).setWidth(b1width);

spring2.getConstraints(buttons[11]).setHeight(b1height);

dimension.add(hfield);

spring2.getConstraints(hfield).setX(t7x);

spring2.getConstraints(hfield).setY(tyy);

spring2.getConstraints(hfield).setWidth(twidth);

spring2.getConstraints(hfield).setHeight(theight);

dimension.add(buttons[12]);

spring2.getConstraints(buttons[12]).setX(b7x);

spring2.getConstraints(buttons[12]).setY(tyy);

spring2.getConstraints(buttons[12]).setWidth(b1width);

spring2.getConstraints(buttons[12]).setHeight(b1height);

dimension.add(buttons[13]);

spring2.getConstraints(buttons[13]).setX(b7x);

spring2.getConstraints(buttons[13]).setY(b1y);

spring2.getConstraints(buttons[13]).setWidth(b1width);

spring2.getConstraints(buttons[13]).setHeight(b1height);

}

//Event Handlers for buttons

class T1C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

x = (int)(Integer.parseInt(Lfield.getText())) + 1;

Lfield.setText(x + "");

}

}

class T2C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

x = (int)(Integer.parseInt(Lfield.getText())) - 1;

Lfield.setText(x + "");

}

}

class T3C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

a = (int)(Integer.parseInt(Rfield.getText())) + 1;

Rfield.setText(a + "");

}

}

class T4C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

a = (int)(Integer.parseInt(Rfield.getText())) - 1;

Rfield.setText(a + "");

}

}

class T5C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

b = (int)(Integer.parseInt(rfield.getText())) + 1;

rfield.setText(b + "");

}

}

class T6C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

b = (int)(Integer.parseInt(rfield.getText())) - 1;

rfield.setText(b + "");

}

}

class T7C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

c = (int)(Integer.parseInt(lfield.getText())) + 1;

lfield.setText(c + "");

}

}

class T8C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

c = (int)(Integer.parseInt(lfield.getText())) - 1;

lfield.setText(c + "");

}

}

class T9C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

d = (int)(Integer.parseInt(tfield.getText())) + 1;

tfield.setText(d + "");

}

}

class T10C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

d = (int)(Integer.parseInt(tfield.getText())) - 1;

tfield.setText(d + "");

}

}

class T11C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

q = (int)(Integer.parseInt(Hfield.getText())) + 1;

Hfield.setText(q + "");

}

}

class T12C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

q = (int)(Integer.parseInt(Hfield.getText())) - 1;

Hfield.setText(q + "");

}

}

class T13C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

f = (int)(Integer.parseInt(hfield.getText())) + 1;

hfield.setText(f + "");

}

}

class T14C implements ActionListener

{

public void actionPerformed(ActionEvent e) {

f = (int)(Integer.parseInt(hfield.getText())) - 1;

hfield.setText(f + "");

}

}

//figure out how to call this subroutine only when button is clicked

public static void main( String[] argv ) {

JFrame frame = new JFrame( "Transform" );

frame.addWindowListener( new WindowAdapter(){

public void windowClosing( WindowEvent e ){

System.exit( 0 );

}

});

JApplet applet = new Shapeshift();

frame.getContentPane().add( BorderLayout.CENTER, applet );

applet.init();

frame.setSize( 550, 400 );

frame.setVisible(true);

}

}

[17945 byte] By [Jamaala] at [2007-11-27 11:08:42]
# 1

1) When you use Swing component, you don't need to write double buffering explicitly because it is the default on the GUI system.

2) If you want to draw/paint something on a panel/canvas like component, you should write your own custom component and should add() its object onto the content-pane of the JApplet.

MyDrawingPanel mdp;

/* in your JApplet init() */

public void init(){

mdp = new MyDrawingPanel();

getContentPane().add(mdp, java.awt.BorderLayout.CENTER);

-

/* your custom class */

class MyDrawingPanel extends JPanel{

public void paintComponent(Graphics g){

super.paintComponent(g);

// other drawing/painting code here

// ...

}

}

/* and somewhere in your JApplet */

// setup or update the drawing parameters

mdp.repaint();

Your current code is too full of mess and wrongness to give a complete review. You must learn basics first.

Visit http://java.sun.com/docs/books/tutorial/index.html

hiwaa at 2007-7-29 13:30:36 > top of Java-index,Java Essentials,New To Java...
# 2

Thanks Hiwa.

One more favor though. I don't know where the wrongness is in my code. Can you tell me everything that is wrong?

thanks,

Jamaal Zite

Jamaala at 2007-7-29 13:30:36 > top of Java-index,Java Essentials,New To Java...
# 3

> where the

> wrongness is in my code. Can you tell me everything

> that is wrong?

See the last sentence of the reply #1.

The most prominent and overwhelming wrongness is you writing code without learning basics nor seeing good example codes found on the net and books.

hiwaa at 2007-7-29 13:30:36 > top of Java-index,Java Essentials,New To Java...
# 4

How could I write code that works if I don't know the basics, Hiwa?

Jamaala at 2007-7-29 13:30:36 > top of Java-index,Java Essentials,New To Java...
# 5

> How could I write code that works if I don't know the

> basics, Hiwa?

By learning the basics? I don't know. Just a thought.

petes1234a at 2007-7-29 13:30:36 > top of Java-index,Java Essentials,New To Java...
# 6

@Jamaal

Never use SpringLayout. It is not for mere mortals. Try and study this code.

/* save and compile as Jamaal.java */

/* warning: in the current version:

* parameter b, c, d and q are not used for PaintPanel painting

* that was initial state from Jamaal's original code

* It is not my fault -- hiwa :)

*/

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Jamaal extends JApplet{

int a, b, c, d, e, f, q, x, start;

JTextField Lfield, Rfield, rfield, Hfield, tfield, hfield, lfield;

JButton[] buttons;

Box tbox;

JPanel bbox, cntbox;

PaintPanel pp;

Container con;

public void init() {

con = getContentPane();

Lfield = new JTextField(5);

Rfield = new JTextField(5);

lfield = new JTextField(5);

rfield = new JTextField(5);

tfield = new JTextField(5);

Hfield = new JTextField(5);

hfield = new JTextField(5);

Lfield.setEditable(false);

Rfield.setEditable(false);

lfield.setEditable(false);

rfield.setEditable(false);

tfield.setEditable(false);

Hfield.setEditable(false);

hfield.setEditable(false);

Box tbox = new Box(BoxLayout.Y_AXIS);

tbox.setPreferredSize(new Dimension(120, 500));

tbox.add(Lfield);

tbox.add(Rfield);

tbox.add(lfield);

tbox.add(rfield);

tbox.add(tfield);

tbox.add(Hfield);

tbox.add(hfield);

buttons = new JButton[14];

buttons[0] = new JButton("UP");

buttons[1] = new JButton("DOWN");

buttons[2] = new JButton("UP");

buttons[3] = new JButton("DOWN");

buttons[4] = new JButton("UP");

buttons[5] = new JButton("DOWN");

buttons[6] = new JButton("UP");

buttons[7] = new JButton("DOWN");

buttons[8] = new JButton("UP");

buttons[9] = new JButton("DOWN");

buttons[10] = new JButton("UP");

buttons[11] = new JButton("DOWN");

buttons[12] = new JButton("UP");

buttons[13] = new JButton("DOWN");

bbox = new JPanel(new GridLayout(14, 1));

bbox.setPreferredSize(new Dimension(80, 500));

for (int i = 0; i < 14; ++i){

bbox.add(buttons[i]);

}

cntbox = new JPanel(new GridLayout(1,2));

cntbox.add(bbox);

cntbox.add(tbox);

con.add(cntbox, BorderLayout.WEST);

start = 0;

x = a = b = c = d = q = f = start;

Lfield.setText("x = " + x);

Rfield.setText("a = " + a);

lfield.setText("b = " + b);

rfield.setText("c = " + c);

tfield.setText("d = " + d);

Hfield.setText("q = " + q);

hfield.setText("f = " + f);

buttons[0].addActionListener(new T1C());

buttons[1].addActionListener(new T2C());

buttons[2].addActionListener(new T3C());

buttons[3].addActionListener(new T4C());

buttons[4].addActionListener(new T5C());

buttons[5].addActionListener(new T6C());

buttons[6].addActionListener(new T7C());

buttons[7].addActionListener(new T8C());

buttons[8].addActionListener(new T9C());

buttons[9].addActionListener(new T10C());

buttons[10].addActionListener(new T11C());

buttons[11].addActionListener(new T12C());

buttons[12].addActionListener(new T13C());

buttons[13].addActionListener(new T14C());

pp = new PaintPanel();

con.add(pp, BorderLayout.CENTER);

}

// x

class T1C implements ActionListener{

public void actionPerformed(ActionEvent e) {

++x;

Lfield.setText("x = " + x);

pp.repaint();

}

}

class T2C implements ActionListener{

public void actionPerformed(ActionEvent e) {

--x;

Lfield.setText("x = " + x);

pp.repaint();

}

}

// a

class T3C implements ActionListener{

public void actionPerformed(ActionEvent e) {

++a;

Rfield.setText("a = " + a);

pp.repaint();

}

}

class T4C implements ActionListener{

public void actionPerformed(ActionEvent e) {

--a;

Rfield.setText("a = " + a);

pp.repaint();

}

}

// b

class T5C implements ActionListener{

public void actionPerformed(ActionEvent e) {

++b;

lfield.setText("b = " + b);

pp.repaint();

}

}

class T6C implements ActionListener{

public void actionPerformed(ActionEvent e) {

--b;

lfield.setText("b = " + b);

pp.repaint();

}

}

// c

class T7C implements ActionListener{

public void actionPerformed(ActionEvent e) {

++c;

rfield.setText("c = " + c);

pp.repaint();

}

}

class T8C implements ActionListener{

public void actionPerformed(ActionEvent e) {

--c;

rfield.setText("c = " + c);

pp.repaint();

}

}

// d

class T9C implements ActionListener{

public void actionPerformed(ActionEvent e) {

++d;

tfield.setText("d = " + d);

pp.repaint();

}

}

class T10C implements ActionListener{

public void actionPerformed(ActionEvent e) {

--d;

tfield.setText("d = " + d);

pp.repaint();

}

}

// q

class T11C implements ActionListener{

public void actionPerformed(ActionEvent e) {

++q;

Hfield.setText("q = " + q);

pp.repaint();

}

}

class T12C implements ActionListener{

public void actionPerformed(ActionEvent e) {

--q;

Hfield.setText("q = " + q);

pp.repaint();

}

}

// f

class T13C implements ActionListener{

public void actionPerformed(ActionEvent e) {

++f;

hfield.setText("f = " + f);

pp.repaint();

}

}

class T14C implements ActionListener{

public void actionPerformed(ActionEvent e) {

--f;

hfield.setText("f = " + f);

pp.repaint();

}

}

class PaintPanel extends JPanel{

Dimension dim;

public PaintPanel(){

setPreferredSize(new Dimension(500, 500));

}

public void paintComponent(Graphics g){

super.paintComponent(g);

dim = pp.getSize();

int w = dim.width;

int h = dim.height;

g.translate(w/2, h/2);

g.setColor(Color.yellow);

g.fillRect(-25, -30 - a, 25 + x, 10);

g.fillRect(-25, 70 + a, 25 + x, 10);

g.fillRect(50 - x, -30 - a, 25 + x, 10);

g.fillRect(50 - x, 70 + a, 25 + x, 10);

g.setColor(Color.blue);

g.fillRect(-25, -40 - a, 100, 10);

g.fillRect(-25, 80 + a, 100, 10);

g.setColor(Color.gray);

g.fillRect(x, 0 + f, 50 - (2 * x), 50 - (2 * f));

g.fillRect(-25, -20 - a, x + 25, 90 + (2 * a));

g.fillRect(50 - x, -20 - a, 25 + x, 90 + (2 * a));

}

} // class PaintPanel

public static void main(String[] args) {

JFrame frame = new JFrame("Transform");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Jamaal jam = new Jamaal();

frame.getContentPane().add(jam, BorderLayout.CENTER);

jam.init();

frame.pack();

frame.setVisible(true);

}

}

hiwaa at 2007-7-29 13:30:36 > top of Java-index,Java Essentials,New To Java...