您好我正在尝试为登录表单提取用户输入。我有JTextField
名为textField,
我想接受用户输入并在另一个类中使用它。
`public String useridGet()
{
return textField.getText();
}
public String userpasswordGet()
{
return passwordField.getText();
}`
我有两种方法可以从登录表单中返回userid
和user password
。
`Button btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
{
public void actionPerformed(ActionEvent arg0) {
{
loginConnect loginConnectObject = new loginConnect();
loginConnectObject.verifyDetails();
} }
});`
然后我在登录按钮中使用verifyDetails()
类中的loginConnect
方法来收集数据以与数据库进行比较。
`public void verifyDetails()
{
loginScreen loginScreenObject = new loginScreen();
String userid = loginScreenObject.useridGet();
String userpassword = loginScreenObject.userpasswordGet();
System.out.println("testing "+userid+userpassword);
}`
在verifyDetails()
方法中,我尝试创建loginScreen
类的对象来访问从登录表单收集输入的getText
方法。
这不起作用,我不知道我哪里出错,任何提示。拜托,谢谢。
答案 0 :(得分:1)
这是你的问题......
loginConnect loginConnectObject = new loginConnect();
您不断创建loginConnect
类的新实例,这意味着屏幕上的实例不是您尝试访问的实例,它们没有任何关系。
相反,您可以将loginConnect
设为实例变量,并在主类中引用它,例如......
public class ...
private loginConnect loginConnectObject;
public ... {
//...
loginConnectObject = new loginConnect();
add(loginConnectObject);
//...
Button btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
loginConnectObject.verifyDetails();
}
});
//...
您可能还想阅读Naming conventions for the Java Language,因为它会让您的代码更容易让人们阅读...