Ввод в JTextField с использованием кнопок - Java
Формулировка задачи:
Я хочу реализовать ввод текста в определённое поле JTextField(их два) с помощью кнопок. IsFocusOwner() не работает, т.к. я ввожу текст не с клавиатуры, а используя кнопки, к которым и переходит курсор.
Решение задачи: «Ввод в JTextField с использованием кнопок»
textual
Листинг программы
- public static void main(final String... args) throws Exception {
- final JFrame f = new JFrame();
- f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
- final Container cp = f.getContentPane();
- cp.setLayout(new FlowLayout());
- final JTextField t1 = new JTextField();
- final JTextField t2 = new JTextField();
- final Component[] cmp = new Component[1];
- final FocusListener focusListener = new FocusAdapter() {
- @Override
- public void focusGained(final FocusEvent e) {
- cmp[0] = e.getComponent();
- }
- };
- t1.addFocusListener(focusListener);
- t2.addFocusListener(focusListener);
- final JLabel l1 = new JLabel();
- final JLabel l2 = new JLabel();
- final JButton b = new JButton("clickme");
- b.addActionListener(e -> {
- l1.setText(String.format("t1 is %sfocused", t1 == cmp[0] ? "" : "not "));
- l2.setText(String.format("t2 is %sfocused", t2 == cmp[0] ? "" : "not "));
- });
- final Dimension size = t1.getPreferredSize();
- size.width = 150;
- t1.setPreferredSize(size);
- t2.setPreferredSize(size);
- cp.add(t1);
- cp.add(t2);
- cp.add(b);
- cp.add(l1);
- cp.add(l2);
- f.setSize(new Dimension(170, 180));
- f.setVisible(true);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д