我做了很少的应用程序,我需要一个我认为简单的事情的帮助,但我堆栈atm。 有2个带JFrame的类。一个是登录和其他I GUI和程序做某事.Login与数据库连接,所有我如何从textField获取值,其中是用户名,当它通过验证显示在其他GUI类,如USER :(名字你首先在登录框中写道。)
我尝试使用set get方法并为该字符串添加值,例如
String s = textField.getText().toString();
但是当我在GUI中调用get方法时,就会发生这种情况。
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
我假设您在登录时被带到另一个屏幕。在这种情况下,textField
的值为空。因此,textField.getText()
将为空。
您已从登录屏幕中读取文本以进行验证。那么,为什么要再读一遍呢。只需将其传递给下一个GUI并根据需要进行渲染。
答案 2 :(得分: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()和onclick按钮从textfield获取值,从类A到类B,并使用classB通过第二个GUI验证和显示输出。