Преобразование JRadioButton в логическое значение?

1

Я пытаюсь сделать так, чтобы в зависимости от того, нажата ли радиокнопка, она будет использовать графику Java и создать апплет с предустановленным рисунком на нем. Хотя я пытался использовать оператор if, но он говорит мне, что я не могу преобразовать JRadioButton в boolean, но я чувствую, что это не будет правильным путем. Я тяну свои волосы, потому что я не понимаю, как это сделать.

Помощь/руководство будет принята с благодарностью: D! Благодаря !

Мой код выглядит так:

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


public class RadioButton extends JPanel {

    static JFrame frame;

   JLabel pic;
   RadioListener myListener = null;
   public RadioButton() {



       // Create the radio buttons and assign Keyboard shortcuts using Mnemonics
       JRadioButton displacement = new JRadioButton("Displacement");
       displacement.setMnemonic(KeyEvent.VK_N);
       displacement.setSelected(true);
        //Displacement Button, set to automatically be clicked

       JRadioButton accel = new JRadioButton("Acceleration");
       accel.setMnemonic(KeyEvent.VK_A);
       accel.setActionCommand("acceleration");
        //Acceleration Button

       JRadioButton time = new JRadioButton("Change in time");
       time.setMnemonic(KeyEvent.VK_S);
       time.setActionCommand("deltaT");
        //The change in time button

       // Creates the group of buttons
       ButtonGroup group = new ButtonGroup();
       group.add(displacement);
       group.add(accel);
       group.add(time);

              myListener = new RadioListener();
                displacement.addActionListener(myListener);
                accel.addActionListener(myListener);
                time.addActionListener(myListener);


      // Set up the picture label
       pic = new JLabel(new ImageIcon(""+"numbers" + ".jpg"));          //Set the Default Image

       pic.setPreferredSize(new Dimension(177, 122)); 


       // Puts the radio buttons down
       JPanel panel = new JPanel();
       panel.setLayout(new GridLayout(0, 1));
       panel.add(displacement);
       panel.add(accel);
       panel.add(time);


       setLayout(new BorderLayout());
       add(panel, BorderLayout.WEST);
       add(pic, BorderLayout.CENTER);
       setBorder(BorderFactory.createEmptyBorder(40,40,40,40));
   } 
  if ( displacement.setSelected(true))
  {

  }


   //Listening to the buttons
   class RadioListener implements ActionListener { 
       public void actionPerformed(ActionEvent e) {
           pic.setIcon(new ImageIcon(""+e.getActionCommand() 
                                         + ".jpg"));
       }
   }

   public static void main(String s[]) {
        frame = new JFrame("∆x = Vavg * time");
        frame.addWindowListener(new WindowAdapter() {
  • 0
    Мне все еще нужно создать класс, из которого будет запускаться апплет, но мне нужно, чтобы он менялся, независимо от того, нажат он или нет
Теги:
radio-button
boolean
project

1 ответ

2

Вы устанавливаете true для isSelected(). Однако, основываясь на вашем описании, вы хотите проверить, был ли он выбран.

Использование:

if ( displacement.isSelected())
  {

  }

Вместо:

if ( displacement.setSelected(true))
  {

  }
  • 0
    Хорошо, я попробую, Большое спасибо: D
  • 0
    Быстрый вопрос: когда я делаю это, я делаю это в другом классе, и он говорит, что переменное смещение не может быть разрешено. Я расширил другой класс, но это не сработало, так как я могу получить его, чтобы он мог добраться до переменной смещения.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню