Я пытаюсь сделать программу создания образов в java (с квадратами/кругами/и т. Д.) У меня есть несколько JRadioButtons в ButtonGroup, которые символизируют «режим» моей программы (если я нарисую круг, что-то еще, если я перемещаю объекты). Когда я нажимаю на разные режимы, меняется «режим», и я могу делать то, что хочу. Моя проблема в том, что я пытаюсь изменить режим, дважды щелкнув по объекту. Я делаю это в MouseListener. Я могу выбрать объект, чтобы изменить «режим», но я не могу изменить выбранную кнопку JRadio на моей ButtonGroup. Я искал какое-то время (поскольку setSelected() не работает). Я знаю, что ButtonGroup может сразу выбрать только одну кнопку. Как можно отменить выбор текущего и выбрать тот, который мне нужен (первый). Спасибо за любые советы.Как выбрать JRadioButton из ButtonGroup?
ответ
Из документов:
общественного недействительными setSelected (булево б)
Устанавливает состояние кнопки. Обратите внимание, что этот метод не вызывает actionEvent. Вызовите doClick, чтобы выполнить изменение программных действий.
Как уже упоминалось здесь использовать:
radioBtn.doClick();
У меня было несколько трудностей, потому что у моего radioBtn не было имени (созданного методом и добавляющего imediatly в jFrame). Я назвал каждую кнопку и использовал radioBtn.doClick (1), чтобы щелкнуть первый (тот, который мне нужен). Спасибо. – user3450862
Я создал небольшой метод, который позволяет мне установить любую кнопку радио группы. Очень удобно, если вы не хотите использовать, если для любого переключателя.
public void setButtonGroup(int rdValue, Enumeration elements){
while (elements.hasMoreElements()){
AbstractButton button = (AbstractButton)elements.nextElement();
if(Integer.parseInt(button.getActionCommand())==rdValue){
button.setSelected(true);
}
}
}
затем
setButtonGroup(yourValue, yourButtonGroup.getElements());
Используйте 'IsSelected();', он будет говорить состояние вашего 'RadioButton', если вы используете его на петле вы могли бы знать, какая из slected. –