Ввод в 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д