создавать горячие клавиши в Java, используя свинг - PullRequest
0 голосов
/ 21 декабря 2011

Привет, я написал следующий код для создания горячих клавиш в Java Swing.Я создаю Мнемонику для Jtextfield1 (Name).Это показало правильно, но теперь мне нужно знать, если во время выполнения я немедленно нажму tf2, тогда курсор примет значение tf2 из tf1.

Я ввожу некоторые значения в tf2.Тогда мне нужно ввести tf1.В этой ситуации я нажимаю клавиши ALT+N (поскольку мнемоника N равна tf1).Курсор сфокусировался на tf1 и ввел имя в текстовое поле.как мне это сделать?

package hotkeys;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

public class hotkey extends JFrame {

    public static void main(String arg[]) {

        JLabel Name=new JLabel("Name");
        JTextField tf1=new JTextField(20);
        Name.setLabelFor( Name );
        Name.setDisplayedMnemonic( 'N' );

        JLabel Regno=new JLabel("Reg_NO");
        JTextField tf2=new JTextField(20);

        JButton b1=new JButton("Save");
        JButton b2=new JButton("eXit");

        JFrame f=new JFrame();
        JPanel p=new JPanel();

        p.add(Name);
        p.add(Regno);
        p.add(tf1);
        p.add(tf2);
        p.add(b1);
        p.add(b2);

        f.add(p);
        f.setVisible(true);
        f.pack();
    }    
}

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

вам нужно искать KeyBindings , вывод из KeyBindings должен быть javax.swing.Action и там вы можете обернуть набор Focus в решения JComponent,

1 голос
/ 20 октября 2012

Необходимость, которую вы описываете, является мнемоникой для JTextField.Для производных AbstractButton вы устанавливаете мнемонику напрямую с помощью setMnemonic .Для JTextField вы создаете JLabel и устанавливаете мнемонику в JLabel.Затем вы прикрепляете метку к текстовому полю, и мнемоника работает, как и ожидалось.Вы прикрепляете метку к текстовому полю следующим образом:

label.setLabelFor(textField);

Таким образом, единственное, что неправильно в вашем коде, это то, что вы ввели неверный аргумент в вызове setLabelFor .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...