Я пытаюсь добавить FocusListener к некоторым JTextFields и JFormattedTextFields , все сделано правильно, и когда класс загружается, прослушиватель работает правильно, это простой метод выберите весь текст в TextFields, когда фокус получен, но TextField.selectAll() работает только один раз, затем, когда я фокусирую что-то еще, и возвращаю фокус в поле, он ничего не делает, но сам прослушиватель работает , я попробовал добавить System.out.println(evt.getComponent()), и он распечатывает результат, но фокус больше не выделяет весь текст...
Весь класс Frame огромен и очень специфичен, с некоторым кодом, сгенерированным IDE ¯\_(ツ)_/¯, поэтому я добавляю только два поля, которые, как я считаю, могут помочь понять, что у меня здесь есть...
tfVencimento = new javax.swing.JFormattedTextField(dateMask());
tfValorBruto = new javax.swing.JFormattedTextField(decimalMask());
tfValorBruto.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#,##0.00"))));
tfValorBruto.setText("0,00");
tfValorBruto.setMargin(new java.awt.Insets(2, 4, 2, 4));
tfValorBruto.setMinimumSize(new java.awt.Dimension(70, 22));
tfValorBruto.setPreferredSize(new java.awt.Dimension(70, 22));
tfValorBruto.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
FocusGained(evt);
}
});
tfVencimento.setMargin(new java.awt.Insets(2, 4, 2, 4));
tfVencimento.setMinimumSize(new java.awt.Dimension(70, 22));
tfVencimento.setPreferredSize(new java.awt.Dimension(70, 22));
tfVencimento.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
FocusGained(evt);
}
});
private void FocusGained(java.awt.event.FocusEvent evt) {
JTextField field = (JFormattedTextField) evt.getComponent();
field.selectAll();
}
Я думал, что это может быть что-то, что переопределяет мой прослушиватель, но ничего не нашел...
Может быть, я применил прослушиватель, попробовал несколько способов и все получилось...
Если я применю к каждому полю прослушиватель с разными методами для каждого (например, код ниже), это сработает, но у меня более 10 полей, поэтому это скучно делать, и код сложно поддерживать...
tfVencimento.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
tfVencimentoFocusGained(evt);
}
});
private void tfVencimentoFocusGained(java.awt.event.FocusEvent evt) {
tfVencimento.selectAll();
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -correctly
Есть ли что-нибудь, что может помешать правильной работе FocusListener? ⇐ JAVA
Программисты JAVA общаются здесь
1727379367
Anonymous
Я пытаюсь добавить FocusListener к некоторым JTextFields и JFormattedTextFields , все сделано правильно, и когда класс загружается, прослушиватель работает правильно, это простой метод выберите весь текст в TextFields, когда фокус получен, но TextField.selectAll() работает только один раз, затем, когда я фокусирую что-то еще, и возвращаю фокус в поле, он ничего не делает, но сам прослушиватель работает , я попробовал добавить System.out.println(evt.getComponent()), и он распечатывает результат, но фокус больше не выделяет весь текст...
Весь класс Frame огромен и очень специфичен, с некоторым кодом, сгенерированным IDE ¯\_(ツ)_/¯, поэтому я добавляю только два поля, которые, как я считаю, могут помочь понять, что у меня здесь есть...
tfVencimento = new javax.swing.JFormattedTextField(dateMask());
tfValorBruto = new javax.swing.JFormattedTextField(decimalMask());
tfValorBruto.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#,##0.00"))));
tfValorBruto.setText("0,00");
tfValorBruto.setMargin(new java.awt.Insets(2, 4, 2, 4));
tfValorBruto.setMinimumSize(new java.awt.Dimension(70, 22));
tfValorBruto.setPreferredSize(new java.awt.Dimension(70, 22));
tfValorBruto.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
FocusGained(evt);
}
});
tfVencimento.setMargin(new java.awt.Insets(2, 4, 2, 4));
tfVencimento.setMinimumSize(new java.awt.Dimension(70, 22));
tfVencimento.setPreferredSize(new java.awt.Dimension(70, 22));
tfVencimento.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
FocusGained(evt);
}
});
private void FocusGained(java.awt.event.FocusEvent evt) {
JTextField field = (JFormattedTextField) evt.getComponent();
field.selectAll();
}
Я думал, что это может быть что-то, что переопределяет мой прослушиватель, но ничего не нашел...
Может быть, я применил прослушиватель, попробовал несколько способов и все получилось...
Если я применю к каждому полю прослушиватель с разными методами для каждого (например, код ниже), это сработает, но у меня более 10 полей, поэтому это скучно делать, и код сложно поддерживать...
tfVencimento.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
tfVencimentoFocusGained(evt);
}
});
private void tfVencimentoFocusGained(java.awt.event.FocusEvent evt) {
tfVencimento.selectAll();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79028878/is-there-anything-that-can-prevent-a-focuslistener-from-working-correctly[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия