java, pomoc ze "sluchaczami"

0

Czesc, mam pewien problem w dzialaniu programu. Kombinuje juz 3 dni i nie potrafie wymyslic jak wywolac pewna akcje za pomoca sluchacza. Problem polega na tym, ze chce by program po wybraniu odpowiedniego koloru i figury, narysowal ja w danym kolorze. Pomoze ktos mnie nakierowac jak zmodyfikowac kod? Z gory dziekuje!

import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.applet.Applet;
import java.awt.Color;
 
 
public class az extends Applet implements MouseListener, MouseMotionListener, KeyListener, ActionListener {
    int mouseX1=0;
    int mouseY1=0;
    int mouseX2=0;
    int mouseY2=0;
    int prostokat=0;
    Button b= new Button("linia");
    Button b1= new Button("prostokat");
    Button b2= new Button("cos okraglego");
    Button b3= new Button();
    Button b4= new Button();
    Button b5= new Button();
     
    public void init() {
        addMouseListener(this);
        addMouseMotionListener(this);
        addKeyListener(this);
         
        b.setBounds(10,100,80, 30);
        b.addActionListener((ActionListener) new b());
        add(b);
        setLayout(null);
        b1.setBounds(10,130,80, 30);
        b1.addActionListener((ActionListener) new b1());
        add(b1);
        setLayout(null);
        b2.setBounds(10,160,80, 30);
        b2.addActionListener((ActionListener) new b2());
        add(b2);
        setLayout(null);
        b3.setBounds(10,70,80, 30);
        b3.addActionListener((ActionListener) new b3());
        b3.setBackground(Color.DARK_GRAY);
        add(b3);
        //setBackground(Color.Blue);
        setLayout(null);
        b4.setBounds(10,40,80, 30);
        b4.addActionListener((ActionListener) new b4());
        b4.setBackground(Color.red);
        add(b4);
        //setBackground(Color.RED);
        setLayout(null);
        b5.setBounds(10,10,80, 30);
        b5.addActionListener((ActionListener) new b5());
        b5.setBackground(Color.GREEN);
        add(b5);
        //setBackground(Color.Green);
        setLayout(null);
       
    }
 
    // TODO overwrite start(), stop() and destroy() methods
 
    @Override
    public void mouseClicked(MouseEvent me) {
       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
         
    }
 
    @Override
    public void mousePressed(MouseEvent me) {
       mouseX1=me.getX();
        mouseY1=me.getY(); 
         repaint();
    }
 
    @Override
    public void mouseReleased(MouseEvent me) {
         mouseX2=me.getX();
        mouseY2=me.getY();
        repaint();
          
     }
 
    @Override
    public void mouseEntered(MouseEvent me) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void mouseExited(MouseEvent me) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void mouseDragged(MouseEvent me) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void mouseMoved(MouseEvent me) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void keyTyped(KeyEvent ke) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void keyPressed(KeyEvent ke) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void keyReleased(KeyEvent ke) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void actionPerformed(ActionEvent me) {
        if(prostokat==0)
            prostokat=1;
        else
            prostokat=0;
    }
    public void paint(Graphics gr)
        {
            
            if (prostokat==0)
            gr.drawLine(mouseX1, mouseY1, mouseX2, mouseY2);
            else   
                if(mouseX2-mouseX1>0)
                    gr.drawRect(mouseX1, mouseY1, mouseX2-mouseX1,mouseY2- mouseY1); 
                else
                    gr.drawRect(mouseX2, mouseY2, mouseX1-mouseX2,mouseY1- mouseY2); 
             
        }
 
              
 
         class b implements ActionListener
         {
         public void actionPerformed(ActionEvent e)
        {   Graphics rysuj = getGraphics();
                    if (prostokat==0)
            rysuj.drawLine(mouseX1, mouseY1, mouseX2, mouseY2);
                   
         }}
          
          class b1 implements ActionListener
         {
         public void actionPerformed(ActionEvent e){
             Graphics rysuj = getGraphics();
                if(mouseX2-mouseX1>0)
                   rysuj.drawRect(mouseX1, mouseY1, mouseX2-mouseX1,mouseY2- mouseY1); 
                else
                    rysuj.drawRect(mouseX2, mouseY2, mouseX1-mouseX2,mouseY1- mouseY2);
         }}          
         class b2 implements ActionListener
        {
         public void actionPerformed(ActionEvent e)
        {   
                   
        }}
            
         class b3 implements ActionListener
         {
         public void actionPerformed(ActionEvent e)
        {   
                                
            }
         }
         class b4 implements ActionListener
          {
         public void actionPerformed(ActionEvent e)
        {  
                 
         }
         }
          
        class b5 implements ActionListener
         {
         public void actionPerformed(ActionEvent e)
        {   
                  
    }
 
        }
         }
0
  1. Nie ucz się polować na mamuty i pisać aplety. Jedno i drugie jest równie przydatne.
  2. Wszystkie instrukcje rysujące powinny być w metodzie paint (lub paintComponent jeśli zmienisz AWT na Swing).
  3. Zmiana wartości pola prostokat powinna być w obsłudze klawisza b1.

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