Ввод в 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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы