2016-06-15 9 views
0

Ich habe eine einfache jForm Login-Anwendung erstellt. Dieses Formular enthält zwei Textfelder für Benutzername und Passwort und eine andere benutzerdefinierte Schaltfläche aus einem jLabel. In diesem Button habe ich alle Event-Listener wie mouseEntered, mouseExited, mousePressed, mouseReleased und mouseClicked geschrieben. Ich muss dieses mouseClicked-Ereignis auslösen, wenn der Benutzer nach der Eingabe des Passworts auf Enter klickt.trigger jLabel Mausereignis aus dem Passwortfeld "enter" keypressed (benutzerdefinierte Taste)

Wie kann ich das tun?

P.S. Ich habe die Roboterklasse benutzt und es scheint keine richtige Lösung zu sein.

+0

* "ein einfaches jform" * Eine solche Klasse in der J2SE. Bitte rede nicht wie deine IDE. –

+1

BTW - Siehe [Was ist das XY-Problem?] (Http://meta.stackexchange.com/q/66377) Dazu würde ich einen 'ActionListener' erstellen, der an einen' JButton' ** oder angeschlossen werden kann a ** 'JTextField'. Beachten Sie, dass die Passwortkontrolle ein ** 'JPasswordField' ** sein sollte .. –

Antwort

2

Sie gehen eine Menge Probleme, um das Auftreten einer JButton zu vermeiden. Verwenden Sie stattdessen JButton und rufen Sie setBorderPainted(false) auf, um das Aussehen eines JLabel zu erhalten. Dann können Sie setDefaultButton() aufrufen, und die Schaltfläche "wird aktiviert, wenn ein UI-definiertes Aktivierungsereignis (normalerweise der Enter Schlüssel) im Stammbereich auftritt, unabhängig davon, ob die Schaltfläche Tastaturfokus hat oder nicht."

image

JFrame f = new JFrame("ButtonTest"); 
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
JButton b = new JButton(new AbstractAction("Login") { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     System.out.println(e); 
    } 
}); 
b.setBorderPainted(false); 
f.getRootPane().setDefaultButton(b); 
f.add(b); 
f.pack(); 
f.setLocationRelativeTo(null); 
f.setVisible(true); 
+0

Vielen Dank für Ihre Antwort @trashgod. Wie kann ich den seltsamen Gradienten Hintergrund des jButton –

+0

@AdeeshaSavindadeSilva loswerden: das ist ein Mac [* screenshot *] (http://meta.stackoverflow.com/questions/99734/how-do-i-create-a- screenshot-to-illustrate-a-post), keine Tastenfunktion. – trashgod

+0

Nicht in Ihrem Bild. Aber mein Java-Button hat einen Gradientenhintergrund. Ich habe dies mit jButton1.setBackground (neue Farbe (0, 0, 0, 0)) ;. Aber das macht eine seltsame Grenze um das Icon-Bild. –