Ввод в JTextField с использованием кнопок - Java

Узнай цену своей работы

Формулировка задачи:

Я хочу реализовать ввод текста в определённое поле JTextField(их два) с помощью кнопок. IsFocusOwner() не работает, т.к. я ввожу текст не с клавиатуры, а используя кнопки, к которым и переходит курсор.

Решение задачи: «Ввод в JTextField с использованием кнопок»

textual
Листинг программы
  1. public static void main(final String... args) throws Exception {
  2.     final JFrame f = new JFrame();
  3.     f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
  4.  
  5.     final Container cp = f.getContentPane();
  6.     cp.setLayout(new FlowLayout());
  7.  
  8.     final JTextField t1 = new JTextField();
  9.     final JTextField t2 = new JTextField();
  10.  
  11.     final Component[] cmp = new Component[1];
  12.     final FocusListener focusListener = new FocusAdapter() {
  13.  
  14.         @Override
  15.         public void focusGained(final FocusEvent e) {
  16.             cmp[0] = e.getComponent();
  17.         }
  18.  
  19.     };
  20.     t1.addFocusListener(focusListener);
  21.     t2.addFocusListener(focusListener);
  22.  
  23.  
  24.     final JLabel l1 = new JLabel();
  25.     final JLabel l2 = new JLabel();
  26.     final JButton b = new JButton("clickme");
  27.     b.addActionListener(e -> {
  28.         l1.setText(String.format("t1 is %sfocused", t1 == cmp[0] ? "" : "not "));
  29.         l2.setText(String.format("t2 is %sfocused", t2 == cmp[0] ? "" : "not "));
  30.     });
  31.  
  32.     final Dimension size = t1.getPreferredSize();
  33.     size.width = 150;
  34.     t1.setPreferredSize(size);
  35.     t2.setPreferredSize(size);
  36.  
  37.     cp.add(t1);
  38.     cp.add(t2);
  39.     cp.add(b);
  40.     cp.add(l1);
  41.     cp.add(l2);
  42.  
  43.     f.setSize(new Dimension(170, 180));
  44.     f.setVisible(true);
  45. }

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


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

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

10   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы