У меня есть поле JTextField
на нем висит обработчик KeyTyped
и мне нужно считать текст с этого поля
но у меня такая проблема, что когда вызываю getText()
я получаю строку без последнего введенного символа
то есть ввел первую букву getText вернул пустую строку
ввел вторую букву получил строку с буквой которую ввел в первый раз и так далее
почему так происходит?
Вариант который предполагается к использованию .getDocument().addDocumentListener()
JLabel lbl = new JLabel();
lbl.setPreferredSize(new Dimension(150, 22));
JTextField tf = new JTextField();
tf.setPreferredSize(new Dimension(150, 22));
tf.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
lbl.setText(tf.getText());
}
@Override
public void insertUpdate(DocumentEvent e) {
lbl.setText(tf.getText());
}
@Override
public void removeUpdate(DocumentEvent e) {
lbl.setText(tf.getText());
}
});
JFrame f = new JFrame();
f.setSize(new Dimension(200,100));
f.setLayout(new FlowLayout());
f.add(lbl);
f.add(tf);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setVisible(true);
Так же худо-бедно сработает и Ваш подход если слушать не keyTyped
а keyReleased
, при этом поведение будет немного не стандартное, проверьте сами:
JLabel lbl = new JLabel();
lbl.setPreferredSize(new Dimension(150, 22));
JTextField tf = new JTextField();
tf.setPreferredSize(new Dimension(150, 22));
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
lbl.setText(tf.getText());
}
});
JFrame f = new JFrame();
f.setSize(new Dimension(200,100));
f.setLayout(new FlowLayout());
f.add(lbl);
f.add(tf);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setVisible(true);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хотел спросить чем отличается: String name = "Mike"; от String name = new String(); или же
Хотел бы к вам обратиться с проблемой с моим калькулятором на java Вот сам код:
Например: У меня есть 10 ImageView которые находятся в LinearLayout который находится в Horizontal Scroll ViewЯ хочу чтобы каждые 2-3 секунды они автоматом прокручивались...