【问题标题】:How to get string value from one Frame to another如何从一帧到另一帧获取字符串值
【发布时间】:2013-06-09 07:08:46
【问题描述】:
我做了一个小应用程序,我需要帮助一个我认为简单的事情,但我正在使用它。
有 2 个带有 JFrames 的类。一个是登录名和其他我做某事的GUI和程序。登录名与数据库连接,我如何从用户名所在的文本字段中获取值以及当它通过验证以显示在其他GUI类中,如USER:(你首先命名的写在登录框架中)。
我尝试使用 set get 方法并为该字符串添加值,例如
String s = textField.getText().toString();
但是当我在 GUI 中调用 get 方法时,什么都没有发生。
【问题讨论】:
标签:
java
string
swing
jframe
【解决方案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);
}
}
【解决方案2】:
我假设您在登录时被带到另一个屏幕。在这种情况下,textField 的值是空的。因此,textField.getText() 将为空。
您已经阅读了登录屏幕中的文本以进行验证。那么,为什么要再读一遍。只需将其传递到下一个 GUI 并根据需要进行渲染。
【解决方案3】:
让两类 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 显示输出。