我想实现这样的功能:
  一个登陆界面,登陆成功后打开另外一个界面,登陆界面上的一些数据需要传递给第二个界面,这样的功能该怎么实现呢?
   刚转java,一时实在找不到该怎么做,请大家帮帮我,叩谢ing

解决方案 »

  1.   

    第二个界面总有个类吧,在构造函数里把参数传进去
    比如叫MainFrame
    public class MainFrame extends JFrame {
      public MainFrame(String yourParamter1,int yourParameter2) {
      }
    ...
    }MainFrame mf=new MainFrame(p1,p2);
    mf.pack();
    mf.setVisible(true);
      

  2.   

    以前写过,下面是源码:package Comm;import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2005</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class Frame1 extends JFrame {
      JTextArea jTextArea1 = new JTextArea();
      JButton jButton1 = new JButton();
      JLabel jLabel1 = new JLabel();
      JButton jButton2 = new JButton();
      Frame2 child;  public Frame1() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        Frame1 frame1 = new Frame1();
        frame1.setVisible(true);
        frame1.show();
      }
      private void jbInit() throws Exception {
        jTextArea1.setText("jTextArea1");
        jButton1.setText("Make Frame 2");
        jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
        jLabel1.setText("Frame 1");
        jButton2.setText("jButton2");
        jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
        this.getContentPane().add(jTextArea1, BorderLayout.CENTER);
        this.getContentPane().add(jButton1, BorderLayout.WEST);
        this.getContentPane().add(jLabel1, BorderLayout.NORTH);
        this.getContentPane().add(jButton2, BorderLayout.SOUTH);
      }  void jButton1_actionPerformed(ActionEvent e) {
        child=new Frame2(this);
        child.setVisible(true);
        child.show();
      }  void jButton2_actionPerformed(ActionEvent e) {
        this.jTextArea1.setText(child.jTextField1.getText());
      }
    }class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
      Frame1 adaptee;  Frame1_jButton1_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
      }
    }class Frame1_jButton2_actionAdapter implements java.awt.event.ActionListener {
      Frame1 adaptee;  Frame1_jButton2_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton2_actionPerformed(e);
      }
    }
      

  3.   

    package Comm;import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2005</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class Frame2 extends JFrame {
      JLabel jLabel1 = new JLabel();
      JTextField jTextField1 = new JTextField();
      JButton jButton1 = new JButton();
      Frame1 parent;
      public Frame2(Frame1 Parent) {
        parent =Parent;
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }  private void jbInit() throws Exception {
        jLabel1.setText("Frame 2");
        jTextField1.setText("jTextField1");
        jButton1.setText("Get Frame1 Text");
        jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
        this.getContentPane().add(jLabel1, BorderLayout.NORTH);
        this.getContentPane().add(jTextField1, BorderLayout.CENTER);
        this.getContentPane().add(jButton1, BorderLayout.SOUTH);
      }  void jButton1_actionPerformed(ActionEvent e) {
        this.jTextField1.setText(parent.jTextArea1.getText() );
      }
    }class Frame2_jButton1_actionAdapter implements java.awt.event.ActionListener {
      Frame2 adaptee;  Frame2_jButton1_actionAdapter(Frame2 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
      }
    }
      

  4.   

    运行以上的frame1 。 frame1 可以读取frame2的text, frame2也可以读取frame1的text