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 :-|