Моя программа моделирует голосование в Избирательном колледже. Каждое государство имеет определенное количество голосов. У меня возникли проблемы с получением моих кнопок для каждого состояния, чтобы вернуть достаточное количество голосов на общую сумму, а затем распечатать эту сумму на экране в JTextField при каждом нажатии кнопки для этой стороны.Нужна помощь, чтобы получить JRadioButton, чтобы вернуть значение в JTextField
Мой вопрос: следует ли использовать элемент ItemStateChanged или ActionListener? После некоторых исследований в Интернете, я в настоящее время использую ActionListener, но я не могу понять окончательную реализацию, или если это лучший способ покончить с моей программой.
ActionListener RadioButtonActionListener = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource() instanceof JRadioButton)
{
if(Democrat.isSelected() == true)
{
String Count = StateValue.getText();
int countInteger = Integer.parseInt(Count);
int demoCount = demoCount + countInteger;
demoTotal.setText(demoCount);
}
else if (Democrat.isSelected() == false)
{
}
}
}
};
Остальной мой код:
public class ElectoralCollegeGUI extends JFrame
{
private static final long serialVersionUID = 1L;
private static int demoVoteCount = 0;
private static int repVoteCount = 0;
private static int undVoteCount = 0;
private JRadioButton Democrat,Republican,Undecided;
private static String whatState;
public ElectoralCollegeGUI()
{
super("Cast Your Votes");
//JPanel mainGridPanel = new JPanel();
setLayout(new GridLayout(22,5));
JLabel demoVoteLabel = new JLabel("Democrat Votes");
JTextField demoTotal = new JTextField();
JLabel repVoteLabel = new JLabel("Republican Votes");
JTextField repTotal = new JTextField();
JLabel undVoteLabel = new JLabel("Undecided Votes");
JTextField undTotal = new JTextField();
demoTotal.setEditable(false);
repTotal.setEditable(false);
undTotal.setEditable(false);
add(demoTotal, BorderLayout.SOUTH);
add(repTotal, BorderLayout.SOUTH);
add(undTotal,BorderLayout.SOUTH);
add(demoVoteLabel);
add(repVoteLabel);
add(undVoteLabel);
String[] state = {"Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut","Delaware",
"Florida" , "Georgia" ,"Hawaii","Idaho", "Illinois", "Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine 1st",
"Maine 2nd" ,"Maine Popular","Maryland", "Massachusetts","Michigan","Minnesota","Mississippi","Missouri",
"Montant", "Nebraska 1st", "Nebraska 2nd", "Nebraska 3rd", "Nebraska Popular", "Nevada","New Hampshire",
"New Jersey", "New Mexico","New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma",
"Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota",
"Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington",
"West Virginia", "Wisconsin", "Wyoming", "Washington,D.C.",};
String[] voteValue = { "9","3","11","6","55","9","7","3","29","16","4","4","20","11","6",
"6","8","8","1","1","2","10","11","16","10","6","10","3","1","1","1",
"2","6","4","14","5","29","15","3","18","7","7","20","4","9","3","11",
"38","6","3","13","12","5","10","3","3"};
for (int i = 0; i < 56 ; i++)
{
add(new VoteChoice(state[i] , voteValue[i]));
}
}
private class VoteChoice extends JPanel
{
private static final long serialVersionUID = 1L;
public VoteChoice(String state, String voteValue)
{
setLayout(new FlowLayout());
JLabel StateName = new JLabel(state);
JLabel StateValue = new JLabel(voteValue);
ButtonGroup party;
party = new ButtonGroup();
Democrat = new JRadioButton("Democrat");
Republican = new JRadioButton("Republican");
Undecided = new JRadioButton("Undecided");
//adds buttons to party button group
party.add(Democrat);
party.add(Republican);
party.add(Undecided);
add(StateName, BorderLayout.WEST);
add(StateValue,BorderLayout.WEST);
add(Democrat, BorderLayout.EAST);
add(Republican, BorderLayout.EAST);
add(Undecided, BorderLayout.EAST);
RadioButtonActionListener actionListener = new RadioButtonActionListener();
Democrat.addActionListener(actionListener);
Republican.addActionListener(actionListener);
Undecided.addActionListener(actionListener);
Я понимаю, что вы хотите, чтобы найти решение проблемы, но это не очень уместно удалить и перескажите свой вопрос, особенно в течение 12-часового периода, их много людей которые все еще будут регистрироваться в течение следующих 24 часов, которые могут помочь, поэтому вам может понадобиться быть маленьким пациентом. – MadProgrammer
Если все, что вы хотите знать, - это когда кнопка запускается (или выбрана в вашем случае), ActionListener вероятно, ваш лучший выбор – MadProgrammer
Вы можете получить более качественные ответы, если вы предоставите компилябельный и исполняемый пример, который демонстрирует вашу проблему. – MadProgrammer