2015-05-01 5 views
1

Я делаю программу в 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()); 
    } 

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

ответ

1

Если вы добавили JRadioButton, к ButtonGroup, то ButtonGroup может дайте вам ButtonModel из выбранного JRadioButton, вызвав на нем getSelection(). И тогда вы можете получить команду actionCommand String (которая должна быть явно установлена ​​для 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(); 
     } 
     }); 
    } 
} 
+0

Как бы я поставил два JRadioButton, в ButtonGroup? –

+0

@HarpreetSunner: вызывается метод 'add (...)'. Например: 'buttonGroup.add (myRadioButton)'. См. Пример кода выше. –

+0

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

Смежные вопросы