1

だから私がここで達成しようとしているのは、最初のラジオボタンと最初のコンボボックスの最初のオプションが選択されている場合、それが最初のラジオボタンと最初のコンボボックスの2番目のオプションである場合、そのカテゴリの下に食べ物を表示したいということですその後、そのカテゴリの下でいくつかの他の食品。ラジオボタン部分は正常に機能しましたが、ドロップダウン部分を一緒に使用できませんでした。行rb1.isSelected()&& cmbItems [0] .isSelected()でエラーが発生します。エラーを克服するのを手伝ってください。これが私のコードです:

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

public class Tryout extends JFrame  implements ActionListener {

        private static final long serialVersionUID = 1L;

        private JTabbedPane tabbedPane = new JTabbedPane();
        private JPanel inputpanel;
        private JPanel searchpanel;
        public JButton submit;
        public JRadioButton rb1, rb2;
        public JComboBox <String> cmb;
        public String cmbItems [] ={"North Indian","South Indian","East Indian", "West Indian"};
        JFrame frame=new JFrame("Get selected JRadioButton");  

        public Tryout() {           
                inputpanel = createPage1();
                searchpanel = createPage2();
                tabbedPane.addTab("Input Form", inputpanel);
                tabbedPane.addTab("Search Form", searchpanel);
                this.add(tabbedPane, BorderLayout.CENTER);           
        }

        public JPanel createPage1() {           
            String cmbItems2 [] ={"European","Asian","American"};          
            JPanel panel = new JPanel();
            panel.setLayout(new GridBagLayout());
            GridBagConstraints c = new GridBagConstraints();
            //Column1
            c.anchor = GridBagConstraints.LINE_START;
            c.weightx = 0.5;
            c.weighty = 0.5;
            JLabel region = new JLabel("Enter Region");      
            c.gridx = 0;
            c.gridy = 0;
            panel.add(region, c);
            JLabel subregion = new JLabel("Enter Sub-Region");
            c.gridx = 0;
            c.gridy = 1;
            panel.add(subregion, c);
            //Column2
            c.anchor = GridBagConstraints.LINE_START;
            ButtonGroup bg = new ButtonGroup();
            rb1 = new JRadioButton("Indian"); 
            c.gridx = 1;
            c.gridy = 0;
            bg.add(rb1);
            panel.add(rb1, c);
            cmb = new JComboBox<String>(cmbItems);
            c.gridx = 1;
            c.gridy = 1;   
            panel.add(cmb, c);        
            //Column3
            c.anchor = GridBagConstraints.LINE_START;
            rb2 = new JRadioButton("International");
            c.gridx = 2;
            c.gridy = 0;           
            bg.add(rb2);
            panel.add(rb2, c);          
            JComboBox<String> cmb2 = new JComboBox<String>(cmbItems2);
            c.gridx = 2;
            c.gridy = 1;      
            cmb2.setEnabled(false);
            panel.add(cmb2, c); 
            submit = new JButton("Submit");
            c.weighty = 10;
            c.anchor = GridBagConstraints.FIRST_LINE_START;
            c.gridx = 1;
            c.gridy = 2;
            panel.add(submit, c);
            submit.addActionListener(this);           
            return panel;            
        }

        public void actionPerformed(ActionEvent e) {
            if(e.getSource()==submit) {
                if(rb1.isSelected() && cmbItems[0].isSelected()) {
                    JOptionPane.showMessageDialog(frame,"You select : "+rb1.getText());
                }
                else if(rb2.isSelected()) {
                    JOptionPane.showMessageDialog(frame,"You select : "+rb2.getText());
                }               
            }           
        }

        public JPanel createPage2() {           
                JPanel panel = new JPanel();
                panel.setLayout(new GridBagLayout());
                GridBagConstraints c = new GridBagConstraints();
                c.fill = GridBagConstraints.RELATIVE;
                JTextField field = new JTextField(20);
                panel.add(field);
                JButton search = new JButton("SEARCH");
                panel.add(search);
                return panel;
        }

        public static void main(String args[]) {
                SwingUtilities.invokeLater(new Runnable() {
                        @Override
                        public void run() {
                                Tryout ex = new Tryout();
                                ex.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                ex.setSize(500,500);
                                ex.setVisible(true);
                        }
                });
        }       
}
4

1 に答える 1

2

cmbItemsは文字列の配列であるため、当然、「選択」されているかどうかについては何もわかりません。コンボボックス自体に選択したアイテムが何であるかを尋ねたいので、次のように言う必要があります

if(rb1.isSelected() && cmb.getSelectedIndex() == 0) {
    JOptionPane.showMessageDialog(frame,"You select : "+rb1.getText());
}
于 2013-03-21T02:14:47.823 に答える