Я пытаюсь сделать личный тест в Java, используя библиотеку свинга.Есть 5 вопросов, на каждый из которых есть 3 возможных ответа.Сейчас я создаю интерфейс, но я пытаюсь добавить несколько групп кнопок в мой метод createComponents.
Итак, для ясности и облегчения чтения я сделал отдельный метод для моего первого текста вопроса.Это было добавлено без проблем.Но я сталкиваюсь с проблемами с группами кнопок.Я не хотел загружать свой метод createComponents несколькими строками и строками, а также повторяющимися строками для добавления элементов Buttongroups, потому что я читал, что, за исключением комментариев, методы должны иметь длину не более 15 строк.или хотя бы для начинающего.
Поэтому я создал отдельный метод для своих групп кнопок, который затем попытался добавить в метод createComponents.это дало мне ошибку, сказав, что нет подходящего метода для добавления группы кнопок в мой контейнер.
Сейчас я пишу несколько строк кода в моем методе createComponent, чтобы я мог "правильно" добавить свои переключатели,Я только на первый вопрос и уже 16 строк в моем методе.есть лучший, более эффективный способ, верно?
private void createComponents(Container container){
BoxLayout layout = new BoxLayout(container, BoxLayout.Y_AXIS);
container.setLayout(layout);
JLabel text = new JLabel("this is the intro text");
container.add((text), BorderLayout.NORTH);
container.add(QuizIntro());
container.add(QuestionOne());
container.add(QuestionOneGroup());
// this throws an error
JRadioButton int1 = new JRadioButton("This is answer choice 1");
JRadioButton ent1 = new JRadioButton("This is answer choice 2");
JRadioButton jb1 = new JRadioButton("This is answer choice 3");
ButtonGroup group = new ButtonGroup();
group.add(int1);
group.add(ent1);
group.add(jb1);
container.add(int1);
container.add(ent1);
container.add(jb1);
// this is the 'correct' way I've been doing it.
}
public ButtonGroup QuestionOneGroup(){
JRadioButton int1 = new JRadioButton("This is answer choice 1");
JRadioButton ent1 = new JRadioButton("This is answer choice 2");
JRadioButton jb1 = new JRadioButton("This is answer choice 3");
ButtonGroup group = new ButtonGroup();
group.add(int1);
group.add(ent1);
group.add(jb1);
return group;
// this is the method I made to add a buttongroup and make my createComponent easier to read.
}
Таким образом, мой ожидаемый результат - просто скелет с вопросом и тремя возможными вариантами ответа, но я получаю сообщение об ошибке, сообщающее, что нет подходящего метода.в нем говорится "несоответствие аргументов, но группу нельзя преобразовать во всплывающее меню или компонент".