Отображать выбранный переключатель в текстовой области

Я делаю программу в netbeans, которая позволяет пользователям импортировать характеристики своего компьютера, и у меня есть 2 переключателя, и я хочу, чтобы вы выбирали вариант, а при нажатии на дисплей он отображал ваш выбор в текстовой области. У меня уже есть другие текстовые поля, в которые человек может вводить информацию, которая отображается в текстовой области, но как бы я сделал это для переключателя.

  private void displayActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        textarea.append("Processor: " + processorTextField.getText() + "\nGraphics Card: "
           + graphicsCardTextField.getText() + "\nRam: " + ramTextField.getText() + "\nHard Drive: " + 
                   hardDriveTextField.getText() + "\nOperating System: " + operatingSystemTextField.getText()
                   + "\nMonitor Size: " + monitorTextField.getText());
    }  

это код, который у меня уже есть, чтобы другие текстовые поля переходили в текстовую область при нажатии кнопки отображения


person Harpreet Sunner    schedule 01.05.2015    source источник


Ответы (1)


Если вы добавили JRadioButtons в ButtonGroup, то ButtonGroup может предоставить вам ButtonModel из выбранного JRadioButton, вызвав для него getSelection(). Затем вы можете получить строку actionCommand модели (которая должна быть явно установлена ​​для JRadioButtons). Например, предположим, что ButtonGroup называется buttonGroup:

private void displayActionPerformed(java.awt.event.ActionEvent evt) { 

    // 1st get the ButtonModel for the selected radio button
    ButtonModel buttonModel = buttonGroup.getSelection();

    // if a selection has been made, then model isn't null
    if (buttonModel != null) {  
        // again actionCommand needs to be set for each JRadioButton
        String actionCommand = buttonModel.getActionCommand();
        // TODO: use actionCommand String as needed
    }
}

Например:

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.*;

@SuppressWarnings("serial")
public class RadioEg extends JPanel {
   private static final String[] RADIO_TEXTS = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
   private ButtonGroup buttonGroup = new ButtonGroup();

   public RadioEg() {
      JPanel radioPanel = new JPanel(new GridLayout(0, 1));
      for (String radioText : RADIO_TEXTS) {
         JRadioButton radioButton = new JRadioButton(radioText);
         radioButton.setActionCommand(radioText); // set this!
         radioPanel.add(radioButton); // add to JPanel
         buttonGroup.add(radioButton); // add to button group
      }

      JPanel southPanel = new JPanel();
      southPanel.add(new JButton(new AbstractAction("GetSelection") {

         @Override
         public void actionPerformed(ActionEvent e) {
            ButtonModel buttonModel = buttonGroup.getSelection();
            if (buttonModel != null) {
               String actionCommand = buttonModel.getActionCommand();
               System.out.println("Selected Button: " + actionCommand);
            }
         }
      }));

      setLayout(new BorderLayout());
      add(radioPanel, BorderLayout.CENTER);
      add(southPanel, BorderLayout.PAGE_END);
   }

   private static void createAndShowGui() {
      JFrame frame = new JFrame("RadioEg");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.getContentPane().add(new RadioEg());
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}
person Hovercraft Full Of Eels    schedule 01.05.2015
comment
Как бы я поместил два JRadioButtons в ButtonGroup? - person Harpreet Sunner; 01.05.2015
comment
@HarpreetSunner: вызвав метод add(...). Например: buttonGroup.add(myRadioButton). См. пример кода выше. - person Hovercraft Full Of Eels; 01.05.2015
comment
извините за такую ​​боль, но я добавил их в группу, но как мне поместить этот код, который вы мне дали, в код, который я уже получил? - person Harpreet Sunner; 01.05.2015
comment
@HarpreetSunner: это тебе решать. :) Я полностью уверен, что вы можете это сделать, но начните с того, что вообще не используйте мой код — вы никогда не должны заимствовать код таким образом — а лучше изучите его и используйте его идеи. - person Hovercraft Full Of Eels; 01.05.2015