日期:2014-05-20  浏览次数:20623 次

Java JFrame 菜鸟问题
问题:
(用的是Eclipse开发工具)
在一个类Login JFrame设计窗体上面有:
  账号:___________________
  密码:___________________

  确定 取消
运行的时候我在"账号"里面输入:wewen
  "密码"里面输入:12345
怎样在另一个类CheckMonney提取到这两个输入文本的信息,就是在这个CheckMoney类里面获取Login类中
新输入”账号“和”密码“文本。


各位大虾帮帮忙!详细一点!!!菜鸟理解一下!!!

在线等!!!

谢谢了!


------解决方案--------------------
Java code

/*Login.java*/
public class LoginManager extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JPasswordField passwordField;
ClientReceive recvThread;
String user1 = textField.getText();
String password1 = new String(passwordField.getPassword());
recvThread = new ClientReceive(user1,password1);
recvThread.start();


/*CheckMoney.java*/

public class CheckMoney extends Thread {
    JTextField username;
    JTextField password;
public CheckMoney(JTextField username, JTextField password){
        this.username = username;
        this.password = password;
/

------解决方案--------------------
呵呵呵,不好意思了,我也是正在做东西——聊天室,路过这里看见你的问题,就顺便看看了
我见我也用到这样的处理方式,所以就复制粘贴加修改发给你了,,,
Java code


/*Login.java*/
public class LoginManager extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JPasswordField passwordField;
ClientReceive recvThread;
String user1 = textField.getText();
String password1 = new String(passwordField.getPassword());
recvThread = new CheckMoney(user1,password1);
recvThread.start();


/*CheckMoney.java*/

public class CheckMoney extends Thread {
    JTextField username;
    JTextField password;
public CheckMoney(JTextField username, JTextField password){
        this.username = username;
        this.password = password;
/

------解决方案--------------------
Thread是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。 
start()是Thread下的函数
start()使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
------解决方案--------------------
话说你的这句:String password1 = new String(passwordField.getPassword());

你是不是对密码那个文本字段处理过了啊?(比如说你输入密码的时候,显示回来的格式是 *******)
要是用户名,密码这两个文本字段都是明文的话,
那就改为:String password1 = pasawordtField.getText();
------解决方案--------------------
不过不管你处理没处理过,都改为:String password1 = pasawordtField.getText();试试吧,,,
------解决方案--------------------
我换了一种方法实现窗体间传参
Java code

   /*login.java*/
   static String username;
   static String password;
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        CheckMoney temp;
        username = jTextField1.getText();
        password=String.valueOf(jPasswordField1.getPassword());
        temp = new CheckMoney(); //!! 把两个窗口联系起来
        temp.setVisible(true); //设置窗口2为可见 
        this.setVisible(false);//该窗口隐藏 
    } 

   /*CheckMoney.java*/   
   //按钮点击事件响应。
   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String str;
        str=jPasswordField.password;//从登陆窗体获取密码
        jTextField1.setText(str);   
    }