Jak narysowac np. kolo po kliknieciu myszy w JPanel

0

Witam,

nie wiem jak narysowac kolo po kliknieciu w JPanel mysza ???

korzystalem z takiego czegos ale nie wiem nadal, bo nie dziala
public void paint(Graphics g) {
super.paint(g);
g.drawRect(0,0,50,50);
}
};

ma to dziala po knieknieciu w gornyJPanel, metoda do sluchania klikniec mysze to private void gornyPanelmouseClicked(MouseEvent e)

Oto kod mojego programu:

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.util.;
import javax.swing.
;
import java.awt.;
import java.awt.event.
;
import java.awt.geom.*;

public class Perceptron extends JFrame {

private JFrame ramka;
private JPanel gornyPanel;
private JPanel dolnyPanel;
private JButton startButton;
private JComboBox jComboBox;

int wagi[] = new int[] {0, 0, 0, 0};
int punkty[][] = new int [4][100];
int i = 0;
int rodzaj = 1;

private void startButtonActionPerformed(ActionEvent evt) {
	Random random = new Random();
	int ilosc_sklasyfikowanych = i;
	int numer;
	for(int j = 0; j < i; j++) {
		punkty[3][j] = 0;
	}
	
	while(ilosc_sklasyfikowanych > 0) {
		numer = random.nextInt(i);
		System.out.println(numer + " numer bez petli");
		while (punkty[3][numer] != 0) {
			numer = random.nextInt(i);
//			System.out.println(numer + " numer");
		}			
		if ((wagi[0]*punkty[0][numer] + wagi[1]*punkty[1][numer]) > wagi[2]) {
			wagi[3] = 1;
		}
		else {
			wagi[3] = -1;
		}
		if (wagi[3] == punkty[2][numer]) {
			punkty[3][numer] = 1;
			ilosc_sklasyfikowanych--;
		}
		else {
			wagi[0] = wagi[0] + punkty[0][numer]*punkty[2][numer];
			wagi[1] = wagi[1] + punkty[1][numer]*punkty[2][numer];
			wagi[2] = wagi[2] - punkty[2][numer];
			
//			System.out.println(wagi[0] + " waga1");
//			System.out.println(wagi[1] + " waga2");
//			System.out.println(wagi[2] + " teta");
			
			for(int j = 0; j < i; j++) {
				punkty[3][j] = 0;
			}
			numer = random.nextInt(i);
			ilosc_sklasyfikowanych = i;
		}
	}
}

private void rodzajjComboboxActionPerformed(ActionEvent evt) {
	int option = jComboBox.getSelectedIndex();
	switch(option) {
    	case 0: rodzaj = 1;
            	break;
    	case 1: rodzaj = -1;
            	break;
	}
}	

private void gornyPanelmouseClicked(MouseEvent e) {
	
	punkty[0][i] = e.getX();
	punkty[1][i] = e.getY();
	punkty[2][i] = rodzaj;
	punkty[3][i] = 0;	
	
//	System.out.println(punkty[0][i]);
//	System.out.println(punkty[1][i]);
//	System.out.println(punkty[2][i]);
	
	i++;
}

public Perceptron() {
	initComponents();
}

public void initComponents() {
	ramka = new JFrame();
	gornyPanel = new JPanel();
    dolnyPanel = new JPanel();
    startButton = new JButton();
    jComboBox = new JComboBox();
    
    ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    
    gornyPanel.setLayout(new BorderLayout());
    gornyPanel.setBackground(new Color(222, 207, 177));
    gornyPanel.setPreferredSize(new Dimension(555, 404));      
    
    gornyPanel.addMouseListener(new MouseListener() {
    	public void mousePressed(MouseEvent e) {
        }
        
        public void mouseReleased(MouseEvent e) {
        }
        
        public void mouseEntered(MouseEvent e) {
        }
        
        public void mouseExited(MouseEvent e) {
        }
        
    	public void mouseClicked(MouseEvent e) {
    		gornyPanelmouseClicked(e);
    	}
    });
    
    dolnyPanel.setLayout(new FlowLayout());
    dolnyPanel.setBackground(new Color(240, 230, 212));
    
    startButton.setBackground(new Color(201,168,102));
    startButton.setText("START");
    startButton.addActionListener(new ActionListener() {
    	public void actionPerformed(ActionEvent evt) {
    		startButtonActionPerformed(evt);
    	}
    });
    dolnyPanel.add(startButton);
    
    jComboBox.setBackground(new Color(240, 230, 212));
    jComboBox.setModel(new DefaultComboBoxModel(new String[] { "1", "2" }));
    jComboBox.addActionListener(new ActionListener() {
    	public void actionPerformed(ActionEvent evt) {
    		rodzajjComboboxActionPerformed(evt);
    	}
    });
    dolnyPanel.add(jComboBox);       
    
    ramka.add(gornyPanel, BorderLayout.NORTH);
    ramka.add(dolnyPanel, BorderLayout.SOUTH);
    
    ramka.pack();
    ramka.setVisible(true);
}

public static void main(String[] args) {
//	System.out.println("Maciej");
	java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Perceptron();
        }
    });
}	

}

0
          
                public void mouseClicked(MouseEvent e) {
                int x = e.getX();
                int y = e.getY();       
                Graphics g = gornyPanel.getGraphics();
                Graphics2D g2= (Graphics2D)g;
                Ellipse2D elipsa = new Ellipse2D.Double(x,y,10,10);
                g2.draw(elipsa);
                g2.dispose();
                }
        }

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