Я самостоятельно изучаю Java, используя бесплатный онлайн-класс Stanford CS106A. Я построил Java-класс «ClickForStar», который включает JRadioButton, предоставляющий 3 варианта: маленький, средний и большой, где пользователь может выбрать, какой размер звездочек будет сгенерирован, когда он нажимает на холст. Мой JRadioButton отлично работает здесь.
Что я хочу сделать, так это создать вспомогательный класс «JRadioButtonSizeSelectClass» с моим кодом JRadioButton, чтобы я мог легко вызывать этот вспомогательный класс в любой программе, в которой я хочу JRadioButton, предоставляя 3 варианта: маленький, средний, большой. Это где мне нужна помощь. Я не могу понять, как заставить класс помощника работать.
Выдержки из кода ниже показывают мой рабочий JRadioButton в полностью работающем Java-классе «ClickForStar», а затем то, что я пытался переместить JRadioButton во вспомогательный класс «JRadioButtonSizeSelectClass»
См. Код ниже
//Working JRadioButton code from "ClickForStar" GraphicsProgram
public void addJButtonsizeGroup(){
/* Create JRadioButtons to select star size */
smallButton = new JRadioButton("Small"); // 1. Create JRadioButton for each option stored in instance var.
mediumButton = new JRadioButton("Medium"); // 1. ""
largeButton = new JRadioButton("Large"); // 1. ""
ButtonGroup sizeGroup = new ButtonGroup(); // 2. Create new ButtonGroup which is initially empty.
sizeGroup.add(smallButton); // 3. Add buttons to the ButtonGroup using add method
sizeGroup.add(mediumButton); // 3. ""
sizeGroup.add(largeButton); // 3. ""
mediumButton.setSelected(true); // 4. Call setSelected to initially select desired button
add(smallButton, SOUTH); // 5. Add each radio button to the interface
add(mediumButton, SOUTH); // 5. ""
add(largeButton, SOUTH); // 5. ""
}
// My attempt to move JRadioButton to a helper class that doesn't work:
public class JRadioButtonSizeSelectClass extends JRadioButton{
/**
* [I couldn't get this class to work.] Creates JRadioButton "small, medium, and large", with instance variables
* SizeGroup (type ButtonGroup that contains the three buttons),
* and smallButton, mediumButton, and largeButton (Type JRadioButton)
*/
public JRadioButtonSizeSelectClass(){
/* Create JRadioButtons to select star size */
smallButton = new JRadioButton("Small"); // 1. Create JRadioButton for each option stored in instance var.
mediumButton = new JRadioButton("Medium"); // 1. ""
largeButton = new JRadioButton("Large"); // 1. ""
ButtonGroup sizeGroup = new ButtonGroup(); // 2. Create new ButtonGroup which is initially empty.
sizeGroup.add(smallButton); // 3. Add buttons to the ButtonGroup using add method
sizeGroup.add(mediumButton); // 3. ""
sizeGroup.add(largeButton); // 3. ""
mediumButton.setSelected(true); // 4. Call setSelected to initially select desired button
add(smallButton, SOUTH); // 5. Add each radio button to the interface
add(mediumButton, SOUTH); // 5. ""
add(largeButton, SOUTH); // 5. ""
}
/* Instance variables */
private JRadioButton smallButton; //Instance variable for JRadioButton
private JRadioButton mediumButton; //Instance variable for JRadioButton
private JRadioButton largeButton; //Instance variable for JRadioButton
}
Я пытался вызвать свой вспомогательный класс "JRadioButtonSizeSelectClass" с помощью add (JRadioButtonSizeSelectClass (); но программа вылетает.