Zum Inhalt springen

tasten drückn -> bild anzeigen


hund555

Empfohlene Beiträge

hallo, ich will dass, wenn ich "s" drücke ein neues bild snk angezeigt wird, irgendwie wird bei s drücken es nciht übergeben, wenn ich Xinc gleich auf 10 setzte dann gehts aber

import java.applet.Applet;

import java.awt.*;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;


public class progi extends Applet

    implements Runnable

{


public progi()

	{

		x = new int[350];

		y = new int[350];

		bits = 2;

		isGraphics = true;

		Xinc =0;

		Yinc=0;



   }



	public void init()

    {


    	     setBackground(Color.red); 

    	     snk = getImage(getCodeBase(), "snk.gif");

    	     right = getImage(getCodeBase(), "right.gif");


    for(int i=0; i<120; i++)

    {

    	x[i]=0;

    	y[i]=120;

   }


      	}


   public void paint(Graphics g) {



       g.setColor(Color.black);

        g.drawString("Hello World!!!!", 110, 110);


       for(int i = 0; i <= bits; i++)

         {   if(isGraphics)

                g.drawImage(right, x[i], x[i], this);    


         }


    if(isGraphics)

        {

            if(Xinc == 10)

                g.drawImage(snk, x[1], y[1], this);

        }


    }




	public void run()

	{

		repaint();

	}




	 	  public boolean keyDown(Event event, int i)

    {


        if(i == 115)

        {

            Xinc = 10;


        }

        return false;



	}



int Xinc;

int Yinc;   

int x[];

int y[];   

int bits;

boolean isGraphics;

 Image snk;

 Image right;

 int a;

		int b;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo, ich will dass, wenn ich "s" drücke ein neues bild snk angezeigt wird, irgendwie wird bei s drücken es nciht übergeben, wenn ich Xinc gleich auf 10 setzte dann gehts aber

kingofbrain hat schon Recht. Dieser Satz ist nur mit Mühe und Not ins Deutsche zu übersetzen. Und Dein Code ist nicht gerade lesbar formatiert. Wenn Du Hilfe von uns erwartest, solltest Du uns schon ein bißchen entgegenkommen.

Aber zu Deinem Problem: Ich habe im Code keinen einzigen KeyEventListener gefunden, der das Drücken der Taste "S" abfangen würde. Dann kann das auch nicht gehen.

Zum Umgang mit Listenern: Java ist auch eine Insel 5 - Kap. 15

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo hund555!

Also erstmal muss ich den anderen hier zustimmen, das wiederhole ich jetzt aber nicht, das deprimiert und ärgert nur. (Will niemanden runter reden, manchmal muss die Kritik auch konstruktiv sein.)

Du hättest jedenfalls so anfangen können wie: "Ich hab da 'n Applet. Auf diesem zeige ich ein GIF-Bild an. Dieses Bild wird soll immer dann wechseln, wenn auf die Taste gedrückt wird......"

Aber das spielt jetz keine Rolle mehr. Was du vorhast, ist ja mittlerweile klar.

keinen einzigen KeyEventListener gefunden
Das ist auch nicht nötig, da die Klasse Applet die Methoden keyDown(Event, int), mouseDown(Event, int, int), etc. aus der Oberklasse Component übernimmt.

ABER: Schau mal in die API Doc. Dort findest du Folgendes unter der Methode keyDown(Event, int):

"Deprecated. As of JDK version 1.1, replaced by processKeyEvent(KeyEvent)."

Daher mein Tipp an dich: Versuch es mal mit der Methode processKeyEvent(KeyEvent). Vielleicht liegt es daran. (Ist meiner Meinung nach anzunehmen.)

Ein weiterer Tipp für die Zukunft: Schau bitte erst selbst, woran es liegen könnte. Ziehe alle Möglichkeiten in Erwägung. Und wenn du was nicht weißt, schaust du am besten ERST in die Java API Doc (ist nicht umsonst die Bibel der Java-Entwickler ;)) oder in diverse Tutorials. Damit erstparst du uns eine Menge Zeit.

Und dann kannst du ja immernoch fragen, wenn das alles nicht hilft. Ist ja auch vollkommen legitim. Aber dann auch bitte nicht vergessen, deine Problembeschreibung treffend zu formulieren, möglichst in deutscher Sprache.

Kontrolliere deine Fragen auf Inhalt und Rechtschreibung. Nutze ggf. die Vorschau-Funktion des Forums. Dafür ist sie ja da.

Damit tust du einigen einen Gefallen... (Können ja nicht alle so nett sein wie ich... ;):D)

Also dann. Hoffe, ich war dir 'ne Hilfe.

Besten Gruß.

Arvid.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist auch nicht nötig, da die Klasse Applet die Methoden keyDown(Event, int), mouseDown(Event, int, int), etc. aus der Oberklasse Component übernimmt.

ABER: Schau mal in die API Doc. Dort findest du Folgendes unter der Methode keyDown(Event, int):

"Deprecated. As of JDK version 1.1, replaced by processKeyEvent(KeyEvent)."

Daher mein Tipp an dich: Versuch es mal mit der Methode processKeyEvent(KeyEvent). Vielleicht liegt es daran. (Ist meiner Meinung nach anzunehmen.)

Moinsen,

hmm. OK. Hab' ich bisher übersehen. Aus Interesse habe ich natürlich mal in die API geschaut und folgendes gefunden:

This method is not called unless key events are enabled for this component. Key events are enabled when one of the following occurs:

  • A KeyListener object is registered via addKeyListener.

  • Key events are enabled via enableEvents.

Note that this method is not called by the event dispatch thread if the component is not the focus owner of if the component is not showing. This method is called when key events are registered via the addKeyListener or enableEvents methods but, as of release 1.4, the implementation of the AWT event dispatching thread redirects KeyEvent to the focus owner. Please see the Focus Specification for further information.

Daher würde ich zumindest mal enableEvents() ausführen.

Und zu hund555: Wenn Du ein Bild anzeigen willst, solltest Du das auch in der keyDown()-Methode tun ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...