Przeróbka programu "Figury" - Pomocy

0

Witam.
Posiadam program który po uruchomieniu wygląda tak:

[url=http://img2.freeimagehosting.net/image.php?995dbeb049.jpg][img]http://img2.freeimagehosting.net/uploads/th.995dbeb049.jpg[/img][/url]

Ponaciśnięciu na któryś przycisk albo zmienia sie figura albo kolor tła.
Mój problem polega na tym że nie wiem co i gdzie trzeba pozmieniac w kodzie aby rysowały się inne figury np: trójtąk i jakiś wielokąt.

Ten projekt składa się z 4 części
I część: grafika.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Grafika {
public static void main (String[] poz) {
 JFrame ramka = new JFrame();
 ramka.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
 ramka.setTitle ("Grafika");
 
 Toolkit t = Toolkit.getDefaultToolkit();
 Dimension rE = t.getScreenSize();
 int sz = rE.width;
 int wy = rE.height;
 ramka.setLocation(sz/4, wy/4);
 ramka.setSize(sz/2, wy/2);
   
 panelGrafiki pG = new panelGrafiki();
 panelSterowania pS = new panelSterowania(pG);

 Container pZaw = ramka.getContentPane();
 pZaw.setLayout(new BorderLayout());
 pZaw.add(pG, BorderLayout.CENTER);
 pZaw.add(pS,BorderLayout.EAST);
 
 ramka.setVisible(true);
}
}

II część: SłuchaczPZ.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class SluchaczPZ implements ActionListener {
 panelGrafiki p;
public SluchaczPZ (panelGrafiki pG){
 p = pG; }
public void actionPerformed(ActionEvent z) {
 System.out.println("Pomarańczowy");
//  p.setBackground(Color.green);

 p.kolor_tla = Color.orange;
 p.repaint();
}
}
 class SluchaczPC implements ActionListener {
 panelGrafiki p;
public SluchaczPC (panelGrafiki pG){
 p = pG; }
public void actionPerformed(ActionEvent z) {
 System.out.println("Czerwony");
//  p.setBackground(Color.red);
 p.kolor_tla = Color.red;
 p.repaint();
}
}

 class SluchaczPP implements ActionListener {
 panelGrafiki p;
public SluchaczPP (panelGrafiki pG){
 p = pG;
 }
 
public void actionPerformed(ActionEvent z) {
 System.out.println("Prostokat");
 p.figura = new Rectangle2D.Double(10,20,100,140);
 p.repaint();
}
 
}

class SluchaczPK implements ActionListener {
 panelGrafiki p;
public SluchaczPK (panelGrafiki pG){
 p = pG; }
public void actionPerformed(ActionEvent z) {
 System.out.println("Elipsa");
 p.figura = new Ellipse2D.Double(10,20,100,140);
 p.repaint();
}
}

 class SluchaczPN implements ActionListener {
 panelGrafiki p;
public SluchaczPN (panelGrafiki pG){
 p = pG; }
public void actionPerformed(ActionEvent z) {
 System.out.println("Czarny");
 p.kolor_figury = Color.black;
  p.repaint();
}
}

III część: panelGrafiki.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;




public class panelGrafiki extends JPanel {
public Shape figura = new Rectangle2D.Double(10,20,100,140);
public Color kolor_figury;
public Color kolor_tla = Color.yellow;

public panelGrafiki(){
// setBackground(Color.white);
}
public void paintComponent (Graphics g) {
 super.paintComponent(g);
 Graphics2D g2 = (Graphics2D) g;
 setBackground(kolor_tla);
 g2.setPaint(kolor_figury);
 g2.draw (figura);
    g2.setPaint (Color.black);
    g2.fill(figura);
}

}

IV część: panelSterowania.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class panelSterowania extends JPanel {
panelGrafiki p;

public panelSterowania(panelGrafiki pG){
 p = pG;
 JLabel eK = new JLabel("Kolor");
 JLabel eF = new JLabel("Figura");
 JButton pC = new JButton("Czerwony");
 JButton pZ = new JButton("Pomarańczowy");
 JButton pK = new JButton("Elipsa");
 JButton pP = new JButton("Prostokat");
 JButton pN = new JButton("Nowy kolor");
 
 setBackground(Color.green);
 setLayout(new GridLayout(6,1,20,20));
 
 SluchaczPZ sPZ = new SluchaczPZ(p);
 pZ.addActionListener(sPZ);
   
 SluchaczPC sPC = new SluchaczPC(p);
 pC.addActionListener(sPC);
   
 SluchaczPK sPK = new SluchaczPK(p);
 pK.addActionListener(sPK);
   
 SluchaczPP sPP = new SluchaczPP(p);
 pP.addActionListener(sPP);
 
 SluchaczPN sPN = new SluchaczPN(p);
 pN.addActionListener(sPN);
 
add (eK);
add (pC);
add (pZ);
add (eF);
add (pK);
add (pP);
add (pN);
}
}

Czy ktoś mógłby udzielić mi wskazówki co należy zmienić w tym kodzie aby rysowała się inna figura np: trójtąk i jakiś wielokąt?

Bardzo proszę o pomoc :-|

0

II część: sluchaczPZ.java


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class SluchaczPZ implements ActionListener {
	panelGrafiki p;

	public SluchaczPZ(panelGrafiki pG) {
		p = pG;
	}

	public void actionPerformed(ActionEvent z) {
		System.out.println("Pomarańczowy");
		// p.setBackground(Color.green);

		p.kolor_tla = Color.orange;
		p.repaint();
	}
}

class SluchaczPC implements ActionListener {
	panelGrafiki p;

	public SluchaczPC(panelGrafiki pG) {
		p = pG;
	}

	public void actionPerformed(ActionEvent z) {
		System.out.println("Czerwony");
		// p.setBackground(Color.red);
		p.kolor_tla = Color.red;
		p.repaint();
	}
}

class SluchaczPP implements ActionListener {
	panelGrafiki p;

	public SluchaczPP(panelGrafiki pG) {
		p = pG;
	}

	public void actionPerformed(ActionEvent z) {
		System.out.println("Prostokat");
/***********************************************************/
/*                      Zmień tutaj                                                             */
		p.figura = new Rectangle2D.Double(10, 20, 100, 140);
		p.repaint();
	}

}

class SluchaczPK implements ActionListener {
	panelGrafiki p;

	public SluchaczPK(panelGrafiki pG) {
		p = pG;
	}

	public void actionPerformed(ActionEvent z) {
		System.out.println("Elipsa");
/***********************************************************/
/*                      Zmień tutaj                                                             */
		p.figura = new Ellipse2D.Double(10, 20, 100, 140);
		p.repaint();
	}
}

class SluchaczPN implements ActionListener {
	panelGrafiki p;

	public SluchaczPN(panelGrafiki pG) {
		p = pG;
	}

	public void actionPerformed(ActionEvent z) {
		System.out.println("Czarny");
		p.kolor_figury = Color.black;
		p.repaint();
	}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1