#java #text #textbox #swt
#java #текст #текстовое поле #swt
Вопрос:
Я пытаюсь очистить два текстовых поля, используя следующий код. Он выполняется без ошибок, но числа, введенные в текстовом поле, не меняются при нажатии кнопки. Есть предложения? Заранее спасибо! 🙂
btnClear = new Button(shlTestProject, SWT.NONE);
btnClear.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
textBox1.setText("");
textBox2.setText("");
}
});
btnClear.setBounds(240, 298, 75, 25);
btnClear.setText("Clear");
textBox1= new Text(shlTestProject, SWT.BORDER);
textBox1.setBounds(224, 386, 76, 21);
textBox1.addVerifyListener(new VerifyListener() {
public void verifyText(VerifyEvent e) {
e.doit = false; //assume we don't allow it
char myChar = e.character; // get the character typed
if (Character.isDigit(myChar)) e.doit = true; // allow 0-9
if (myChar == 'b') { //allow backspace
e.doit = true;
}
}
});
Ответ №1:
Используйте прослушиватель выбора для работы с нажатой кнопкой:
btnClear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
textBox1.setText("");
textBox2.setText("");
}
});
Комментарии:
1. Большое спасибо @greg-449! Сначала это не работало, но я понял, что это противоречит имеющемуся у меня verifyListener, чтобы они могли вводить только числа. Я постараюсь обойти это. Еще раз спасибо.
2. Как создаются TextBox1 / 2?
3. Я не знаю, как добавить здесь в комментариях, поэтому я добавил код к своему первоначальному вопросу. Знаете ли вы, как специально создать исключение, позволяющее кнопке сбрасывать текст на пустой, сохраняя при этом символы равными 0-9?
4. Я смог исправить это, используя некоторый код, который я нашел здесь: java2s.com/Code/Java/SWT-JFace-Eclipse/… Спасибо за ваше время, Грег-449, это очень много значит!
Ответ №2:
clear.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View v){
textView.setText("");
}
});
Ответ №3:
Как упоминал Александр, внедрите Action Listener в свой класс, а затем просто прослушайте, была ли нажата конкретная кнопка. Если это так, используйте этот код, чтобы очистить текстовое поле. TextFieldName.setText("");
.
Помните, вам нужно запустить событие прослушивателя действий, используя эту строку кода, иначе это не сработает. buttonName.addActionListener(this)
Получайте удовольствие от программирования!
Комментарии:
1. Вопрос о SWT, а не Swing / AWT.