Adamg1996 Opublikowano 4 Sierpnia 2011 Udostępnij Opublikowano 4 Sierpnia 2011 Hej napisałem sobie taki program (jeszcze nie skończony). import javax.swing.*; import java.awt.*; import javax.swing.border.*; import java.util.*; public class ApImg { public static void main(String args[]){ Okno okno=new Okno(); } } class Okno extends JFrame { public Okno(){ setSize(800,600); setTitle("Obrazek"); Panel panel=new Panel(); Border krawedz=BorderFactory.createLineBorder(Color.red,5); panel.setBorder(krawedz); add(panel); setDefaultCloseOperation(3); setLocationRelativeTo(null); setVisible(true); } } #class Panel extends JPanel implements KeyListener { int x=0; int y=0; public Panel() { setFocusable(true); $ addKeyListener(this); } #public void KeyPressed(KeyEvent e){ int kod=e.getKeyCode(); # if (kod==KeyEvent.VK_RIGHT){ x=x+4; } # if (kod==KeyEvent.VK_LEFT){ x=x-4; } # if (kod==KeyEvent.VK_UP){ y=y-4; } # if (kod==KeyEvent.VK_DOWN){ y=y+4; } } #public void KeyTyped(KeyEvent e){} #public void KeyRelased(KeyEvent e){} public void paintComponent(Graphics g){ ImageIcon im=new ImageIcon("img.png"); Image img=im.getImage(); g.drawImage(img,x,y,null,null); } } # - cannot find symbol $ - method addKeyListener in class component cannot be applied to given types Ktoś wie dlaczego wyskakuja takie błędy ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 4 Sierpnia 2011 Udostępnij Opublikowano 4 Sierpnia 2011 EDIT: newermajnd. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Sierpnia 2011 Administratorzy Udostępnij Opublikowano 4 Sierpnia 2011 Hm, a nie pokazuje linijek w których znajduje te problemy? Większość środowisk tak robi... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Adamg1996 Opublikowano 4 Sierpnia 2011 Autor Udostępnij Opublikowano 4 Sierpnia 2011 Pokazuje. Zaraz pozaznaczam.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
R.o.b Opublikowano 4 Sierpnia 2011 Udostępnij Opublikowano 4 Sierpnia 2011 Wg. mnie powinno być "else if" zamiast kolejnych ifów i programuje od jakiegoś czasu w javie i nie wiem o co biega z # i $. Zamiasta Panel daj JPanel, nie ma takiego komponentu jak Panel Sry. dopiero potem się kapłem o co chodzi z # i $ :) EDIT2: Nie powinno być keyTyped i keyRealesed ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Adamg1996 Opublikowano 4 Sierpnia 2011 Autor Udostępnij Opublikowano 4 Sierpnia 2011 Ale Panel to rozszerzenie JPanel. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
R.o.b Opublikowano 4 Sierpnia 2011 Udostępnij Opublikowano 4 Sierpnia 2011 Napisz JPanel panel=new JPanel(); bo wydaje mi się, że ten Panel daje się we znaki tamtemu. Nie powinieneś dawać akcji w ActionListenerze? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sernat Opublikowano 4 Sierpnia 2011 Udostępnij Opublikowano 4 Sierpnia 2011 $ - method addKeyListener in class component cannot be applied to given types odnosi się do: #class Panel extends JPanel implements KeyListener { Piszesz by pisać, czy masz pojęcie, o co w Javie chodzi ;) ? "extends JPanel" to dziedziczenie wszystkich cech po klasie JPanel. No i jest dobrze, tak się robi. Natomiast "implements KeyListener" to zaimplementowanie interfejsu KeyListener, a raczej deklaracja, że do takowego się dostosujesz. Gdzie tu jest dostosowanie się :) ? Kolejna uwaga: Sposób, w jaki piszesz, nie ma z Javą nic wspólnego. Co zmienne x i y mają wspólnego z panelem, a co panel z odczytywaniem zdarzeń? Tworzysz osobną klasę, np. Hero, czy Player. Jeżeli ma mieć tylko jedną instancję, to może być i statyczna. Dajesz zmienne o zasięgu prywatnym (private) x i y i tworzysz metodę zwracającą obiekt "punkt" o nazwie np. getCoords(), ewentualnie metody getX() i getY(). Tak wygląda Java. Polecam książkę "Core Java", chyba najlepsza możliwa pozycja :) . Sporo Javy nie tykałem, za ewentualne błędy - przepraszam :) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się