Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Радио баттон будет работать?

Алена Ученик (112), на голосовании 1 год назад
 Для добавления радиобаттона с фильтром и полем, работающим от радиобаттона, нужно сделать следующее: 

1. Создайте новый радиобаттон с помощью класса JRadioButton. Например:

JRadioButton radioButton = new JRadioButton("Фильтр yo>10");

2. Создайте новое поле, которое должно работать от радиобаттона. Например:

JTextField textField = new JTextField(250);

3. Добавьте слушатель событий для радиобаттона, который будет показывать или скрывать поле в зависимости от его состояния. Например:

radioButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (radioButton.isSelected()) {
textField.setVisible(true);
} else {
textField.setVisible(false);
}
}
});

4. Добавьте фильтр для поля, который будет показывать только значения yo>10. Например:

textField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
String text = textField.getText();
if (radioButton.isSelected() && isNumeric(text) && Integer.parseInt(text)>=10) {
RowFilter rf = RowFilter.regexFilter("(?i)^"+text, 2);
tableSorter.setRowFilter(rf);
} else {
tableSorter.setRowFilter(null);
}
}
});

5. Добавьте код, который будет открывать поле при выборе радиобаттона. Например:

radioButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (radioButton.isSelected()) {
textField.setVisible(true);
textField.requestFocus();
} else {
textField.setVisible(false);
}
}
});

Общий код для добавления радиобаттона и поля:

JRadioButton radioButton = new JRadioButton("Фильтр yo>10");
JTextField textField = new JTextField(250);
textField.setVisible(false);

radioButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (radioButton.isSelected()) {
textField.setVisible(true);
textField.requestFocus();
} else {
textField.setVisible(false);
}
}
});

textField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
String text = textField.getText();
if (radioButton.isSelected() && isNumeric(text) && Integer.parseInt(text)>=10) {
RowFilter rf = RowFilter.regexFilter("(?i)^"+text, 2);
tableSorter.setRowFilter(rf);
} else {
tableSorter.setRowFilter(null);
}
}
});

rpanel.add(radioButton);
rpanel.add(textField);

Где isNumeric() - это метод, определяющий, является ли строка числом:

public static boolean isNumeric(String str) {
try {
Integer.parseInt(str);
return true;
} catch(NumberFormatException e){
return false;
}
}
Голосование за лучший ответ
Бравлер Олег Ученик (221) 1 год назад
Зачем тебе радио в хлебе?
Александр Искусственный Интеллект (301689) 1 год назад
т.е. ты нас спрашиваешь проверять то что тебе ЖПТ настрадал?
Похожие вопросы