Skocz do zawartości
MaKaR

Java Problem Z Programem

Rekomendowane odpowiedzi

napisałem programik w javie

 

import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.MouseEvent;import java.awt.event.ActionListener;import java.awt.event.MouseListener;class mojKomponent extends JComponent {	Color kolor=Color.red;	int c=40;	int x,y;	int f;	double g;	protected void paintComponent(Graphics g) {		if (Aplikacja.k!=0){			for (int i=0;i<Aplikacja.k;i++) {				g.setColor(Aplikacja.tab[i].kolor);				g.fillOval(Aplikacja.tab[i].a,Aplikacja.tab[i].b,c,c);			}		}	}	public int znajdzKolko (int a, int b) throws Exception {		f = 0;		for (int i=0;i<Aplikacja.k;i++) {			x=Aplikacja.tab[i].a;			y=Aplikacja.tab[i].b;			g=Math.sqrt(((a-(x+(c/2)))*(a-(x+(c/2))))+((b-(y+(c/2)))*(b-(y+(c/2)))));			if (g<=c/2) {			f++;			Aplikacja.tab[i].kolor = kolor;			repaint();			}			}		if (f==0) throw new Exception("brak");					return 0;				}		public Dimension getMinimumSize() {		return new Dimension(210,210);		}	public Dimension getPreferredSize() {		return getMinimumSize();		}}class Aplikacja extends JFrame implements ActionListener, MouseListener {	static kolko tab[];	static int k=0;	static int x,y;	static int a,b;	static String g;	mojKomponent p;	JButton b1 = new JButton ("red"); 	JButton b2 = new JButton ("green"); 	JButton b3 = new JButton ("blue");	JButton b4 = new JButton ("random");	JButton b5 = new JButton ("key-in");		Aplikacja() {		super("Kołko");		setLayout(new BorderLayout (2,1));		JPanel przyciski = new JPanel();		przyciski.setBackground (Color.yellow);		przyciski.add (b1);		przyciski.add (b2);		przyciski.add (b3);		przyciski.add (b4);		przyciski.add (b5);		add (przyciski, "North");		tab = new kolko[50];		p = new mojKomponent();		add(p);		pack();		b1.addActionListener(this);		b2.addActionListener(this);		b3.addActionListener(this);		b4.addActionListener(this);		b5.addActionListener(this);			p.addMouseListener(this);	}	public void mouseClicked (MouseEvent evt) {		Object zrodlo = evt.getSource();		if (zrodlo==p) {			a=p.getMousePosition().x;			b=p.getMousePosition().y;			try {			p.znajdzKolko(a,b);			}			catch (Exception brak) {				System.out.print("kolko nie znalezione");			}		}	}		public void actionPerformed (ActionEvent evt){		Object zrodlo = evt.getSource();		if (zrodlo==b1)			p.kolor = Color.red;		else if (zrodlo==b2)			p.kolor = Color.green;		else if (zrodlo==b3)			p.kolor = Color.blue;		else if (zrodlo==b4) {			if (k!=49) {				x = (int)(Math.random() * 200);				y = (int)(Math.random() * 200);				tab[k] = new kolko(p.kolor,x,y);				k++;			}			else {				JOptionPane.showMessageDialog(null, "Przekroczony limit");			}		}		else if (zrodlo==b5) {			if (k!=49) {				g=JOptionPane.showInputDialog(null, "Wprowadz 1 wspolrzedna z przedziału (20,200)");				x=Integer.parseInt(g);				g=JOptionPane.showInputDialog(null, "Wprowadz 2 wspolrzedna z przedziału (20,200)");				y=Integer.parseInt(g);				if (x<20 || x>200 || y<20 || y>200)					JOptionPane.showMessageDialog(null, "zle wspolrzedne");				else {					tab[k] = new kolko(p.kolor,x,y);					k++;				}			}		}		repaint();	}	public void mousePressed(MouseEvent arg0) {		// TODO Auto-generated method stub			}	public void mouseReleased(MouseEvent arg0) {		// TODO Auto-generated method stub			}	public void mouseEntered(MouseEvent arg0) {		// TODO Auto-generated method stub			}	public void mouseExited(MouseEvent arg0) {		// TODO Auto-generated method stub			}}class kolko {	Color kolor;	int a;	int b;		kolko(Color color, int x, int y) {			kolor=color;			a=x;			b=y;		}}public class l6zad3 {	public static void main (String args[]) {		Aplikacja app = new Aplikacja();		app.setVisible(true);	}}

 

i przy kompilowaniu wyskakuje mi bład

 

--------------------Configuration: l6zad3 - j2sdk1.4.2_12 <Default>--------------------C:\Documents and Settings\xxx\Pulpit\java\l6zad3.java:83: cannot resolve symbolsymbol  : method getMousePosition ()location: class mojKomponent			a=p.getMousePosition().x;						   ^C:\Documents and Settings\xxx\Pulpit\java\l6zad3.java:84: cannot resolve symbolsymbol  : method getMousePosition ()location: class mojKomponent			b=p.getMousePosition().y;						   ^2 errorsProcess completed.

o so chosi ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Po pierwsze, w klasie mojKomponent (btw klasy powinno nazywac sie z duzej litery) nie masz metody getMousePosition(), nie ma jej w klasie JComponent, z której dziedziczysz, ani w żadnej z klas po której dziedziczy JComponent.

 

Kompilator po prostu nie znalazl metody getMousePosition().

 

Pozycje kliku pobierasz z obiektu evt typu MouseEvent przekazanemu do metody mouseClicked(), masz tam metody getX() i getY();

 

Czyli twoja metoda powinna wygladac tak:

public void mouseClicked (MouseEvent evt) {		Object zrodlo = evt.getSource();		if (zrodlo==p) {			a=evt.getX();			b=evt.getY();			try {			p.znajdzKolko(a,B);			}			catch (Exception brak) {				System.out.print("kolko nie znalezione");			}		}	}
Edytowane przez thuGG

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mylisz sie.

 

Nazwy klas zaczyna sie z duzej litery: MojaKlasa

Nazwy metod z malej: mojaMetoda();

Nazwy pól i zmniennych z malej: Sting mojaZmienna = "";

Nazwy pol statycznych w całości duzymi literami: static String MOJA_ZMIENNA = "";

Edytowane przez thuGG

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

napisałem programik w javie

Metoda getMousePosition() zaimplementowana jest w pakiecie java.awt od wersji 1.5. Metoda znajdzKolko(a,b) nie powinna generować Exception, a jedynie zwracać potrzebne informacje typu (znaleziono-nie znaleziono,liczba znalezionych,indeksy znalezionych i.t.p). Exception zachować na rzeczywiście wyjątkowe sytuacje. Pozdrowienia.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ta i działać powinien, miałem starą wersje Jcreatora i javke 1.4 nie pomyślałem wczesniej a w szkole gdzie było pisane była 1.5 i nowszy jcreator i to dlatego nie chodziło jak trzeba.

 

 

Pozatym topic można już zamknąć bo zaliczyłem Jave :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A ja dodam jeszcze, zeby na glupka nie wyjsc, ze probując rozwiazac twoj problem zaglądalem do API wlasnie w wersji 1.4, bo ta mi pierwsza w googlach wyskoczyla.

Nie spodziewalem sie, ze cos zmienili w tej kwestii w 1.5.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...