2014-02-06 3 views
0

Итак, я создаю калькулятор, который вычисляет BMR & TDEE. У меня проблемы, когда я запускаю код, потому что все появляется, кроме групп групп радио. Может ли кто-нибудь сказать мне, что мне нужно добавить/что я делаю неправильно, чтобы заставить их появиться на экране?Добавление группы переключателей на экран

private JRadioButton female, male, sedentary, lightlyActive, modActive, veryActive, extrActive; 

    private JButton calculate; 

    public BMRGUI() 

    { 

     heightLabel = new JLabel ("Height (in.) "); 

     weightLabel = new JLabel ("Weight (lbs) "); 

     ageLabel = new JLabel ("Age (yrs)"); 

     female = new JRadioButton ("Female"); 
     female.setMnemonic(KeyEvent.VK_C); 
     female.setActionCommand("Female"); 
     female.setSelected(true); 

     male = new JRadioButton ("Male"); 
     male.setMnemonic(KeyEvent.VK_C); 
     male.setActionCommand("Male"); 

     ButtonGroup group = new ButtonGroup(); 
     group.add(female); 
     group.add(male); 

     female.addActionListener(this); 
     male.addActionListener(this); 

     sedentary = new JRadioButton ("Sedentary"); 
     sedentary.setMnemonic(KeyEvent.VK_C); 
     sedentary.setActionCommand("Sedentary"); 
     sedentary.setSelected(true); 

     lightlyActive = new JRadioButton ("Lightly active"); 
     lightlyActive.setMnemonic(KeyEvent.VK_C); 
     lightlyActive.setActionCommand("Lightly active"); 

     modActive = new JRadioButton ("Moderately active"); 
     modActive.setMnemonic(KeyEvent.VK_C); 
     modActive.setActionCommand("Moderately active"); 

     veryActive = new JRadioButton ("Very active"); 
     veryActive.setMnemonic(KeyEvent.VK_C); 
     veryActive.setActionCommand("Very active"); 

     extrActive = new JRadioButton ("Extremely active"); 
     extrActive.setMnemonic(KeyEvent.VK_C); 
     extrActive.setActionCommand("Extremely active"); 

     ButtonGroup group2 = new ButtonGroup(); 
     group2.add(sedentary); 
     group2.add(lightlyActive); 
     group2.add(modActive); 
     group2.add(veryActive); 
     group2.add(extrActive); 
     sedentary.addActionListener((ActionListener) this); 
     lightlyActive.addActionListener((ActionListener) this); 
     modActive.addActionListener((ActionListener) this); 
     veryActive.addActionListener((ActionListener) this); 
     extrActive.addActionListener((ActionListener) this); 

     BMRLabel = new JLabel ("Your BMR is "); 

     bmrResultLabel = new JLabel (" "); 

     bmrMeaningLabel = new JLabel(" "); 

     TDEELabel = new JLabel ("Your TDEE is "); 

     tdeeResultLabel = new JLabel (" "); 

     tdeeMeaningLabel = new JLabel(" "); 

     height = new JTextField(); 

     weight = new JTextField(); 

     age = new JTextField(); 

     calculate = new JButton ("Calculate"); 

     BMRListener Listener = new BMRListener(); 

     calculate.addActionListener(Listener); 

     setPreferredSize (new Dimension(WIDTH, HEIGHT)); 

     setBackground (Color.white); 



     add(heightLabel); 

     add(height); 

     add(weightLabel); 

     add(weight); 

     add(ageLabel); 

     add(age); 

     add(calculate); 

     add(BMRLabel); 

     add(bmrResultLabel); 

     add(bmrMeaningLabel); 

     add(TDEELabel); 

     add(tdeeResultLabel); 

     add(tdeeMeaningLabel); 

    } 

ответ

2

Вы не добавить свои кнопки в интерфейсе.

A ButtonGroup - это не визуальный вспомогательный класс, который управляет группой кнопок и используется для обеспечения выбора только одной кнопки.

+0

O, duh. что имеет смысл. Спасибо!! – danih

0

Добавить группу радиокнопок с помощью:

add(group2); 
+0

Когда я попытался добавить его так, он придумал эту ошибку: метод add (Component) в типе Container не применим для аргументов (ButtonGroup) – danih

+1

ButtonGroup не основан на компоненте и поэтому не может быть добавлен UI – MadProgrammer