Java: ButtonGroup не будет отображаться

1

Невозможно сделать мой экран ButtonGroup для первых двух флажков. Попытка добавить их, что кажется успешным, однако группа не будет показывать. Вы видите, что я сделал неправильно?

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

  public class JCottageFrame extends
  JFrame implements ItemListener {

     final int ONE_BEDROOM = 650;
     final int TWO_BEDROOM = 850;
     final int ROW_BOAT = 60;
     int totalPrice;

     ButtonGroup group = new ButtonGroup();

     JCheckBox oneBed = new JCheckBox
  ("One Bedroom/week $" + ONE_BEDROOM, false);

     JCheckBox twoBed = new
  JCheckBox("Two Bedroom/week $" + TWO_BEDROOM, false);
     JCheckBox boat = new JCheckBox ("Boat/week $" + ROW_BOAT, false);

     JLabel resortLabel = new JLabel ("Koch Cottages Weekly Rentals");
     JLabel priceLabel = new JLabel("The price for your stay is");

     JTextField totPrice = new JTextField(4);
     JLabel optionExplainLabel2 = new JLabel
  ("Check the rentals you wish to purchase.");


     public JCottageFrame() {

        super("JCottageFrame");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setLayout(new FlowLayout());

        add(resortLabel);
        add(optionExplainLabel2);
        group.add(oneBed);
        group.add(twoBed);
        add(group);  //This does not seem to be working correctly
        add(boat);
        add(priceLabel);
        add(totPrice);

        totPrice.setText("$" + totalPrice);

        oneBed.addItemListener(this);
        twoBed.addItemListener(this);
        boat.addItemListener(this);
     }
        public void itemStateChanged(ItemEvent event) {
        Object source = event.getSource();
        int select = event.getStateChange();

        if(source == oneBed)
        if(select == ItemEvent.SELECTED)
           totalPrice += ONE_BEDROOM;
           else
              totalPrice -= ONE_BEDROOM;
           else
              if(source == twoBed) {
              if(select == ItemEvent.SELECTED)
                 totalPrice += TWO_BEDROOM;
                    else
                       totalPrice -= TWO_BEDROOM;
              }
              else
                 if(select == ItemEvent.SELECTED)
                    totalPrice += ROW_BOAT;
                    else
                       totalPrice -= ROW_BOAT;
                       totPrice.setText("$" + totalPrice);
        }

        public static void main(String[] args)
  {
           JCottageFrame aFrame =
  new JCottageFrame();
           final int WIDTH = 270;
           final int HEIGHT = 230;
           aFrame.setSize(WIDTH, HEIGHT);
           aFrame.setVisible(true);

           aFrame.setLocationRelativeTo(null);
  }
  }

Получение "нет подходящего метода для добавления (ButtonGroup)", хотя я его и объявил.

Теги:
swing
jcheckbox
buttongroup

1 ответ

3

Вы не добавляете ButtonGroup в фрейм. Вы добавляете переключатели в группу для указания возможных вариантов. Вы добавляете кнопки в рамку, чтобы указать, где они должны появиться. Это независимые проблемы. (Источник).

Кроме того, использование JRadioButton вместо JCheckBox предоставит пользователю лучшее указание, что можно выбрать только один.

  • 0
    Спасибо за отзыв, однако мой профессор запрашивает JCheckBox через RadioButton. Пожалуйста, обратитесь к meta.stackoverflow.com/questions/266979/…, чтобы присоединиться к обсуждению надуманных домашних заданий.
  • 0
    Примеры на уроках Oracle неверны. Они показывают добавление группы панели. docs.oracle.com/javase/tutorial/uiswing/components/...

Ещё вопросы

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