2

Я пытаюсь создать своего рода простой симулятор футбола. Это код, который я создал после просмотра учебников, и я знаю его довольно плохо. Все, что я хочу сделать, это добавить ценность для команды, например, 1 для лучшей команды и 10 из худших, и когда я выбираю команду в группе 1 и группу в группе 2, тогда я нажимаю кнопку имитации, всплывающее окно показать мне, какая команда выиграет, учитывая ценность команд. Но я не могу понять, как это сделать.Добавление значения в JRadioButton

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.border.TitledBorder; 



public class sim extends JPanel { 

    public sim() { 
    // JFrame constructor 
     super(true); 

    JRadioButton chelsea, arsenal, chelsea2, arsenal2; 

    this.setLayout(new GridLayout(3,0)); 

    ButtonGroup group = new ButtonGroup(); 
    ButtonGroup group2 = new ButtonGroup(); 

    // takes image and saves it the the variable 
    Icon a = new ImageIcon(getClass().getResource("a.PNG")); 
    Icon c = new ImageIcon(getClass().getResource("c.JPG")); 


    chelsea = new JRadioButton("Chelsea",c); 
    chelsea.setHorizontalTextPosition(AbstractButton.CENTER); 
    chelsea.setVerticalTextPosition(AbstractButton.BOTTOM); 

    arsenal = new JRadioButton("Arsenal",a); 
    arsenal.setHorizontalTextPosition(AbstractButton.CENTER); 
    arsenal.setVerticalTextPosition(AbstractButton.BOTTOM); 

    group.add(chelsea); 
    group.add(arsenal); 

    JLabel label = new JLabel(""); 
    TitledBorder titled = new TitledBorder("Team 1"); 
    label.setBorder(titled); 

    chelsea.setBorder(titled); 
    arsenal.setBorder(titled); 

    JButton button = new JButton("Simulate"); 
    button.setHorizontalAlignment(JButton.CENTER); 
    add(button, BorderLayout.CENTER); 

    chelsea2 = new JRadioButton("Chelsea",c); 
    chelsea2.setHorizontalTextPosition(AbstractButton.CENTER); 
    chelsea2.setVerticalTextPosition(AbstractButton.BOTTOM); 

    arsenal2 = new JRadioButton("Arsenal",a); 
    arsenal2.setHorizontalTextPosition(AbstractButton.CENTER); 
    arsenal2.setVerticalTextPosition(AbstractButton.BOTTOM); 

    group2.add(chelsea2); 
    group2.add(arsenal2); 

    JLabel label2 = new JLabel(""); 
    TitledBorder titled2 = new TitledBorder("Team 2"); 
    label2.setBorder(titled2); 

    chelsea2.setBorder(titled); 
    arsenal2.setBorder(titled); 

    add(label); 
    add(chelsea); 
    add(arsenal); 

    add(button); 

    add(chelsea2); 
    add(arsenal2); 

    HandlerClass handler = new HandlerClass(); 
    chelsea.addActionListener(handler); 
    } 

    private class HandlerClass implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 

      //JOptionPane.showMessageDialog(null, String.format("%s",  e.getActionCommand())); 

     } 
    } 

    public static void main(String[] args) { 
    JFrame frame = new JFrame("Final"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(1920, 1080); 
    frame.setContentPane(new sim()); 
    frame.setVisible(true); 
    } 
} 

ответ

0

Вы можете создать JLabel, связанные с каждым из вашей JRadioButton

Пусть видимость этого JLabel быть ложными, чтобы они не видны.

Тогда вы можете сравнить значения соответствующих JLabel с на щелчке JRadioButton s

0

Если вы хотите связать дополнительное значение с каждым JRadioButton, вы можете создать HashMap.

Чтобы связать значение с JRadioButton:

HashMap<JRadioButton,Integer> = new HashMap<>(); 
hm.put(chelsea2, new Integer(10)); 
hm.put(arsenal2, new Integer(1)); 

Чтобы получить значение конкретной JRadioButton (например chelsea2):

int i = (Integer) hm.get(chelsea2); 
+0

Я сделал это, но я получаю ошибку о том, что его не заявление – Cyp

+0

В какой части вы получили ошибку. – skrtbhtngr