1

我做了一个小应用程序,我需要帮助一个我认为很简单的事情,但我用它来堆栈atm。有 2 个带有 JFrames 的类。一个是登录名,另一个是我的 GUI 和程序。登录名与数据库连接,我如何从用户名所在的文本字段中获取值,以及当它通过验证以显示在其他 GUI 类中,如 USER :(你先命名哪个写在登录框架中)。

例如,我尝试使用 set get 方法并将值添加到该字符串

String s = textField.getText().toString();

但是当我在 GUI 中调用 get 方法时,什么也没有发生。

4

3 回答 3

1

试试这个来传递数据:

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

class PassData extends JFrame
{
    JTextField text;
    PassData(){
        JLabel l=new JLabel("Name: ");
        text=new JTextField(20);
        JButton b=new JButton("Send");
        setLayout(null);
        l.setBounds(10,10,100,20);
        text.setBounds(120,10,150,20);
        b.setBounds(120,40,80,20);
        add(l);
        add(text);
        add(b);
        setVisible(true);
        setSize(300,100);
          b.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
            String value=text.getText();
            NextPage page=new NextPage(value);
            page.setVisible(true);
            }
        });
    }
        public static void main(String[] args) 
    {
        new PassData();
    }
}

在下一页尝试此代码:

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

class NextPage extends JFrame
{
  NextPage(String st)
   {
     setLayout(null);
     setDefaultCloseOperation(javax.swing. WindowConstants.DISPOSE_ON_CLOSE);
     setTitle("Welcome");
     JLabel lab=new JLabel("Welcome  "+st);
     lab.setBounds(10,10,500,20);
     add(lab);
     setSize(300, 100);
      }
 }
于 2013-06-09T09:27:17.560 回答
0

我假设您在登录时被带到另一个屏幕。在这种情况下,值为textField空。所以,textField.getText()会是空的。您已经阅读了登录屏幕上的文本以进行验证。那么,为什么要再读一遍。只需将其传递到下一个 GUI 并按照您的意愿进行渲染。

于 2013-06-09T07:14:46.857 回答
0

使两类 GUI 相互扩展/继承。例如

class A 
{
  private username;
  private password;

public void A(username,password)
{

}
}

class B extends A
{
  private A(username,password);

public setA(username,password){}

public void verify()
{
  // send this response to GUI   
}

}

您可以通过 textField.getText() 从文本字段中获取值,然后单击按钮将值从 A 类传递到 B 类,并使用 B 类验证并通过第二个 GUI 显示输出。

于 2013-06-09T09:11:54.010 回答