情况是这样的一个主界面中有三个按钮a,b,c,:
        当按下按钮a时出面界面A;按下按钮b时出现界面B;按下界面c时出现界面C.求代码!
另外请问:在类A中能否调用类B的内部类C?

解决方案 »

  1.   

    刚写了两个类,你看看吧。import java.awt.Color;
    import java.awt.Font;
    import java.awt.Rectangle;
    import java.awt.SystemColor;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.ButtonGroup;
    import javax.swing.JDialog;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;public class b extends JDialog implements ActionListener {
        private JPanel jContentPane = null;
        public JLabel jLabelDealingID = null;
        static JLabel jLabelSumShow = null;
        static JLabel jLabelMerberIDShow = null;
        static JLabel jLabelMerberNameShow = null;
        static JLabel jLabelMerberLevelShow = null;
        static JLabel jLabelMerberDiscountShow = null;
        static JLabel jLabelMerberPointsShow = null;
        static JRadioButton jRadioButtonCommon = null;
        static JRadioButton jRadioButtonMerBer = null;
        private ButtonGroup bg = new ButtonGroup();
        private JLabel jLabelNum = null;
        static JLabel jLabelNumShow = null;
            public b() {    
            initialize();
            this.setVisible(true);
        }
        private void initialize() {
            this.setTitle("CashRegister");
            this.setSize(500, 200);
            this.setModal(true);
            this.setLocationRelativeTo(this);
            this.setContentPane(getJContentPane());
        }    private JPanel getJContentPane() {
            
            if (jContentPane == null) {
                jLabelNumShow = new JLabel();
                jLabelNumShow.setBounds(new Rectangle(40, 0, 53, 25));
                jLabelNumShow.setForeground(Color.WHITE);
                jLabelNumShow.setText("");
                jLabelNum = new JLabel();
                jLabelNum.setBounds(new Rectangle(0, 0, 40, 25));
                jLabelNum.setForeground(Color.WHITE);
                jLabelNum.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.BOLD, 12));
                jLabelNum.setText("总计:");
                
                
                jContentPane = new JPanel();
                jContentPane.setLayout(null);
                jContentPane.add(getJRadioButtonMerBer(), null);
                jContentPane.add(jLabelNum, null);
                jContentPane.add(jLabelNumShow, null);
                jContentPane.setBackground(SystemColor.darkGray);//背景颜色
                
                
            }
            return jContentPane;
        }
        private JRadioButton getJRadioButtonMerBer() {
            if (jRadioButtonMerBer == null) {
                jRadioButtonMerBer = new JRadioButton();
                jRadioButtonMerBer.setBounds(new Rectangle(300, 0, 54, 21));
                jRadioButtonMerBer.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.BOLD, 12));
                jRadioButtonMerBer.setText("点我");
                jRadioButtonMerBer.setSelected(false);// 交易后返回普通用户
                bg.add(jRadioButtonMerBer);
                jRadioButtonMerBer.addItemListener(new java.awt.event.ItemListener() {
                    public void itemStateChanged(java.awt.event.ItemEvent e) {
                        if(e.getStateChange()==e.SELECTED){
                            a Select = new a(null,"点我",true);
                        }
                        
                    }
                });
            }
            return jRadioButtonMerBer;
        }    public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            
        }
        
        
            public static void main(String args[]) {
            b  test=new b();
            test.setVisible(true);
                
            }
        }  import java.awt.Font;
    import java.awt.Frame;
    import java.awt.Rectangle;
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;public class a extends JDialog {    private static final long serialVersionUID = 1L;
        private JPanel jContentPane = null;
        private JLabel jLabelMerberIDTitle = null;
        private JTextField jTextFieldMerberID = null;
        private JButton jButtonSure = null;
        private JButton jButtonExit = null;
        
        
        public a(Frame owner,String s,boolean b) {
            super(owner,s,b);
            initialize();
        }    private void initialize() {
            this.setSize(332, 198);
            this.setContentPane(getJContentPane());
            this.setLocationRelativeTo(this);
            this.setVisible(true);
        }    private JPanel getJContentPane() {
            if (jContentPane == null) {
                jLabelMerberIDTitle = new JLabel();
                jLabelMerberIDTitle.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.BOLD, 12));
                jLabelMerberIDTitle.setText("请输入信息");
                jLabelMerberIDTitle.setBounds(new Rectangle(49, 37, 114, 33));
                jContentPane = new JPanel();
                jContentPane.setLayout(null);
                jContentPane.add(jLabelMerberIDTitle, null);
                jContentPane.add(getJTextFieldMerberID(), null);
                jContentPane.add(getJButtonSure(), null);
                jContentPane.add(getJButtonExit(), null);
            }
            return jContentPane;
        }    private JTextField getJTextFieldMerberID() {
            if (jTextFieldMerberID == null) {
                jTextFieldMerberID = new JTextField();
                jTextFieldMerberID.setBounds(new Rectangle(162, 37, 114, 33));
            }
            return jTextFieldMerberID;
        }
        
        
        private JButton getJButtonSure() {
            if (jButtonSure == null) {
                jButtonSure = new JButton();
                jButtonSure.setBounds(new Rectangle(61, 98, 70, 33));
                jButtonSure.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.BOLD, 12));
                jButtonSure.setText("确定");
                jButtonSure.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent e) {
                                String id = jTextFieldMerberID.getText();    
                                b.jLabelNumShow.setText(id);
                                setVisible(false);
                                }});
            }
            return jButtonSure;
        }    
        private JButton getJButtonExit() {
            if (jButtonExit == null) {
                jButtonExit = new JButton();
                jButtonExit.setBounds(new Rectangle(192, 98, 70, 33));
                jButtonExit.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.BOLD, 12));
                jButtonExit.setText("取消");
                jButtonExit.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent e) {
                        setVisible(false);
                    }
                });
            }
            return jButtonExit;
        }
        
        
        }  这两个类,你拷贝进去运行一下就明白了。
    希望对你有帮助
      

  2.   

    这类东西我还是喜欢用matisse form来做。
      

  3.   

    可以。
    可以用下面
    B.C  bc =  new B().new C(); 
      

  4.   

    先学基础理论吧,然后用eclipse+swt+wbpro很容易就画出来了
      

  5.   

    基本的SWING开发,好好看有关SWING的书吧!