MaKaR Opublikowano 28 Czerwca 2006 Zgłoś Opublikowano 28 Czerwca 2006 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 ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 29 Czerwca 2006 Zgłoś Opublikowano 29 Czerwca 2006 na pierwszy rzut oka... nieznana metoda getMousePosition().. na pewno jest cos takiego w klasie obiektu p? I czy na pewno tak się pisze? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thuGG Opublikowano 29 Czerwca 2006 Zgłoś Opublikowano 29 Czerwca 2006 (edytowane) 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 29 Czerwca 2006 przez thuGG Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 29 Czerwca 2006 Zgłoś Opublikowano 29 Czerwca 2006 (btw klasy powinno nazywac sie z duzej litery)jak dla mnie obowiazuje notacja "na wielbłada ktora wyglądaDokładnieTak a moze sie mylę ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thuGG Opublikowano 29 Czerwca 2006 Zgłoś Opublikowano 29 Czerwca 2006 (edytowane) 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 29 Czerwca 2006 przez thuGG Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
quuba-kr Opublikowano 2 Lipca 2006 Zgłoś Opublikowano 2 Lipca 2006 napisałem programik w javieMetoda 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 3 Lipca 2006 Zgłoś Opublikowano 3 Lipca 2006 przepraszam, przepraszam... mi sie kod kolegi kompiluje i dziala :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MaKaR Opublikowano 3 Lipca 2006 Zgłoś Opublikowano 3 Lipca 2006 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 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thuGG Opublikowano 7 Lipca 2006 Zgłoś Opublikowano 7 Lipca 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...