Event-handling, MouseListener

Status
Nicht offen für weitere Antworten.
L

Luigi

Gast
Hallo Leute!
Ich versuche seit mehreren Tagen ohne Erfolg ein virtual keyboard zu implementieren.

Ich habe ein JTextField und mehrere JButtons. Auf jedem Knopf (JButton) stehen mindestens 3 Buchstaben.
Mein Ziel ist dieses: Klick man n mal auf ein JButton jb, so soll den n.ten Buchstaben auf dem Knopf, ins JTextField eingefügt werden. (wie zum Beispiel bei Handys)

Meine Klasse implementiert ein MouseListener und ich versuche die Anzahl der Clicks mit getClickcount() herauszufinden.

Hat jemand eine Idee wie ich das machen kann? Vielen dank!
PS: Meine mouseClicked methode:
Code:
public void mouseClicked(MouseEvent e) {
JButton jb;
       
            counter=e.getClickCount();
            
            jb=(JButton)e.getComponent();
                         
            if (counter<=jb.getActionCommand().length())jTextField1.setText(jTextField1.getText()+(jb.getActionCommand()).
substring(counter-1, counter) );
  
    }
:(
 
L

Luigi

Gast
Sorry!
Was bei mir nicht funktionniert:
Klickt man zum Beispiel 3 mal auf mein JButton, dann werden in mein JTextField, nacheinander den ersten Buchstaben auf dem JButton, dann den 2.ten und anschliessend den 3.ten eingefügt. (Das ist nicht gut!!!!)
Mein Wunsch ist, dass nur den 3.ten Buchstaben eingefügt wird.
Mein Virtual Keyboard soll funktionnieren ungefähr in der gleichen Art und Weise wie man Texte in Handys eintippt.
Ich habe auch einen Timer implementiert, was die Zeit nach dem letzten Klick messen sollte, damit der richtige Buchstabe eingefügt werden kann. Aber nichts funktionniert !
My Code:
Code:
this.jButton17.addMouseListener(new MouseAdapter() {
            
            public void mouseClicked(MouseEvent p_event) {
                
                   
                    timer.reset();
                    timer.start();
                    ++counter;
                    System.out.println("Click count: "+p_event.getClickCount());
                    
                    jb=(JButton)p_event.getComponent();
                  
           
            }
            
            
             public void mouseReleased(MouseEvent e) {
                 long dauer=timer.time();
                 
                if (counter>jb.getActionCommand().length())counter=1;
                 while(timer.isgestartet())
                     dauer=timer.time();
                   if (dauer<500) {};
                    if (dauer>500){jTextField1.setText(jTextField1.getText()+(jb.getActionCommand().substring(counter-1, counter) ));
                        counter=0;
                        timer.reset();}
                 
            }
             
    });

        
    }
    


My Timer sieht so aus:

/*
 * Timer.java
 *
 * Created on 16. November 2004, 00:21
 */

package gui;

/**
 *
 * @author  
 */


public class Timer
{
  private long dauer; 
  private boolean gestartet;    
  private long beginn;    
                              
  /**
   * Initialize a new timer
   */
  public Timer()
  {
    dauer = 0;
    gestartet       = false;
  }

  /**
   * This method should be called to start/restart the timer. 
   *
   */
  public void start()
  {
    if (gestartet)
      return;

    gestartet = true;
    beginn = System.currentTimeMillis();
  }

  /**
   * This method should be called to stop/pause the timer.
   *
   */
  public void stop()
  {
    if (!gestartet)
      return;

    long stop_time = System.currentTimeMillis();
    gestartet = false;
    // add the time we measured up to now
    dauer += stop_time - beginn;
  }

  /**
   * This method should be called to reset the timer. 
   */
  public void reset()
  {
    dauer = 0;

    if (gestartet)
      beginn = System.currentTimeMillis();
  }

  /**
   * This method should be called to find out the time measured so far.
   * If the timer is started then the time measured up to this precise
   * moment will be returned. If the timer was stopped then the time
   * measured up to the time it was stopped will be returned.
   */
  public long time()
  {
    if (gestartet)
      {
	long current_time = System.currentTimeMillis();
	return dauer + (current_time - beginn); 
      }
    else
      return dauer;
  }

  /**
   * This method should be called to find out if the timer is
   * gestartet or not.
   */
  public boolean isgestartet()
  {
    return gestartet;
  }

  /**
   * This method returns a string representation of our timer.
   */
  public String toString()
  {
    return "Time measured so far: " + time() + " (ms)";
  }
}
Roar: Bitte Code tags benutzen
 

Wildcard

Top Contributor
Ist jetzt ein bißchen schlampig ,so auf die Schnelle. kannst du ja schöner machen :wink:

Code:
            public void mousePressed(MouseEvent e) 
            {
                
                text.setText(text.getText()+e.getClickCount());
                if (e.getClickCount()>1)
                {
                    text.setText(text.getText().substring(0,text.getText().length()-2)+e.getClickCount());
                }

            }

geht bei dir dann analog dazu:
du musst nur das schon gesetzte Zeichen wieder rauslöschen bevor du das neue schreibst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Event Handling Event Handling in eigene Klasse AWT, Swing, JavaFX & SWT 4
T Internes Event-handling in TextField/JTextField AWT, Swing, JavaFX & SWT 2
D Event Handling in Komplexen Anwendungen AWT, Swing, JavaFX & SWT 9
F Event Handling AWT, Swing, JavaFX & SWT 7
N Java Swing Event Handling AWT, Swing, JavaFX & SWT 7
R pint methode und event handling AWT, Swing, JavaFX & SWT 3
D Trennung des Event-Handling von der GUI AWT, Swing, JavaFX & SWT 4
K Event-Handling: Was steckt dahinter? AWT, Swing, JavaFX & SWT 11
Juelin in javafx Event auslösen AWT, Swing, JavaFX & SWT 4
G Mouse Event in anderemm Event auslösen AWT, Swing, JavaFX & SWT 50
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
J CheckBoxListCell auf click event in listView reagieren AWT, Swing, JavaFX & SWT 1
W JavaFX Etwas Tabellenartiges + Cell-Content-Changed-Event (o.ä.) AWT, Swing, JavaFX & SWT 30
O Swing Event Dispatch Thread AWT, Swing, JavaFX & SWT 1
B Swing Windowbuilder Rückgabewert im Event AWT, Swing, JavaFX & SWT 3
Z Befehl Action Event Verlassen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
Pr0m3theus Animation nach Event AWT, Swing, JavaFX & SWT 6
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
Sugan Swipe Event? AWT, Swing, JavaFX & SWT 8
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
H Event Handling JavaFx - auf Event warten AWT, Swing, JavaFX & SWT 4
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
M Swing OnLoad-Event o. Ä. AWT, Swing, JavaFX & SWT 3
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
J Swing JMenuItem-Event?? AWT, Swing, JavaFX & SWT 3
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
A Mouse event und exit on close AWT, Swing, JavaFX & SWT 11
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
J Button Event nur einmal ausführen AWT, Swing, JavaFX & SWT 3
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
T Callback vs. Event listener AWT, Swing, JavaFX & SWT 7
F Frage zu Event KeyTyped bei jPanel AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
T Anzahl Event Listeners AWT, Swing, JavaFX & SWT 4
A Swing JButton int im Event AWT, Swing, JavaFX & SWT 9
G Swing Onkeyup Event AWT, Swing, JavaFX & SWT 3
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
P Swing Event das ausgelöst wird, sobald Änderung der Größe Abgeschlossen ist AWT, Swing, JavaFX & SWT 4
A Shift-Tab-Event auslösen AWT, Swing, JavaFX & SWT 5
T Event Dispatch Thread und noch ein Thread AWT, Swing, JavaFX & SWT 7
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
A Probleme mit dem KeyReleased-event AWT, Swing, JavaFX & SWT 3
J Doppelklick Event AWT, Swing, JavaFX & SWT 32
jueki Event bei Änderung der Spaltenbreite in einem JTable AWT, Swing, JavaFX & SWT 15
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
N Swing JComboBox Event Problem AWT, Swing, JavaFX & SWT 5
M JTree => Event Dispatching Error AWT, Swing, JavaFX & SWT 2
D Event in Fenster ausgeben + Observer + kein Plan AWT, Swing, JavaFX & SWT 2
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
H KeyUp-Event/Ereignis AWT, Swing, JavaFX & SWT 6
C Event Frage AWT, Swing, JavaFX & SWT 7
M Swing WindowListener -> Event abbrechen? AWT, Swing, JavaFX & SWT 2
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
R JTextField - Event bei jedem Buchstaben AWT, Swing, JavaFX & SWT 2
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
M Actionlistener ohne Event -.-?! AWT, Swing, JavaFX & SWT 2
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
D PropertyChangeListener Event auswertung AWT, Swing, JavaFX & SWT 7
O FlowLayout Button Event zuweisen? AWT, Swing, JavaFX & SWT 7
J remove() components bei event von JComboBox AWT, Swing, JavaFX & SWT 2
I event AWT, Swing, JavaFX & SWT 6
G Swing JFileChooser Event für neue Directory? AWT, Swing, JavaFX & SWT 5
X Checkboxen erstellt mit MouseClicked event AWT, Swing, JavaFX & SWT 10
Dragonfire Swing One componentResized Event AWT, Swing, JavaFX & SWT 14
data89 Was mache ich mit "Dispatched Event Thread"/Substance falsch? AWT, Swing, JavaFX & SWT 4
Kr0e Event simulieren AWT, Swing, JavaFX & SWT 5
S Tastatur Event auserhalb des fokuses aufnehmen AWT, Swing, JavaFX & SWT 4
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
M Swing Event mit Button AWT, Swing, JavaFX & SWT 7
B Wie kann ich ein event wieder beseitigen AWT, Swing, JavaFX & SWT 2
R Checkboxen - Event mit Controller abfangen AWT, Swing, JavaFX & SWT 7
Spin Window Event Beispiel AWT, Swing, JavaFX & SWT 6
O Tabelle über Event sortieren AWT, Swing, JavaFX & SWT 4
Iron Monkey JTable 2 Selektionsfarben Mouse-Event AWT, Swing, JavaFX & SWT 8
Dragonfire JTree, Selection via event AWT, Swing, JavaFX & SWT 7
K JButton auf JPanel in JTable (Darstellungs-/Event-Probleme) AWT, Swing, JavaFX & SWT 16
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
E Komponenten in Event Dispatch Thread erzeugen? AWT, Swing, JavaFX & SWT 4
D Event beim Laden eines JPanels? AWT, Swing, JavaFX & SWT 3
O Action Event auslösen bei unbekanntem JTextField AWT, Swing, JavaFX & SWT 3
R Registrieren um Event abzufangen AWT, Swing, JavaFX & SWT 3
N solange Maustaste gedrückt Event AWT, Swing, JavaFX & SWT 15
Daniel_L Nachrichten/Event aus nicht-modalen Dialogen abfragen? AWT, Swing, JavaFX & SWT 4
G Event an einer JComboBox registrieren AWT, Swing, JavaFX & SWT 8
S Welches Event beim ändern einer Zelle in einer JTable AWT, Swing, JavaFX & SWT 4
S Welches Event beim auswählen einer Zelle? [JTable] AWT, Swing, JavaFX & SWT 3
A Event von Login zu Main klasse AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben