从另一个文件调用字符串

时间:2016-11-29 09:21:50

标签: java

所以我得到了这些字符串,我的主文件名为“Login”,就像类

一样
public JPasswordField passfield;
public JTextField userfield;
public JTextField hostfield;
public String host;
public String user;
public String pwd;

JButton buttoncon = new JButton("Connect");
    //buttoncon.addActionListener(buttonconClick());

    buttoncon.addActionListener(new ActionListener() { 
          @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            buttonconClick();
        } 
        } );


public void buttonconClick() {  
    if(hostfield.getText().length()==0)
        JOptionPane.showMessageDialog(null, "Tomt ip felt");
    else if(userfield.getText().length()==0)
           JOptionPane.showMessageDialog(null, "Tomt brukernavn felt");
    else if(passfield.getPassword().length==0)
           JOptionPane.showMessageDialog(null, "Tomt passord felt");
    else{
          host = hostfield.getText();
          host = "jdbc:mysql://" + host;
          user = userfield.getText();
          char[] pass = passfield.getPassword();
          pwd = String.copyValueOf(pass); 
        }

然后连接到DB

我需要在我的第二个文件中调用这些字符串,我还有文件importet

import test.Login;

JButton Worldselect = new JButton("World");
    Worldselect.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            try {
                Login mysqlcon = new Login();
                String hostcon = mysqlcon.host;
                hostcon = "jdbc:mysql://" + hostcon;
                String usercon = mysqlcon.user;
                String pwdcon = mysqlcon.pwd;

Connection conn = DriverManager.getConnection(hostcon,usercon,pwdcon);

但当我这样做的时候,他们会重新调整,这就是为什么?

1 个答案:

答案 0 :(得分:0)

简而言之,您构建了一个Login的实例,如下所示:

Login {
    passfield;
    userfield = null;
    hostfield = null;
    host = null;
    user = null;
    pwd = null;
}

接下来,您尝试访问这些值。当然,他们是空的。

您需要调用方法buttonconClick来设置这些值,但首先需要设置三个字段实例以防止您将面临的NullPointerException。完成此操作后,实例将具有您期望的值。

在您的情况下,您应该在ActionListener之外创建Login实例,其中字段存在,将字段设置为实例。只有在单击时,您将使用方法检查字段值,如果这样做(您应该使用布尔值),尝试连接。

编辑:

以下是您的代码的一部分:

Login mysqlcon = new Login();
String hostcon = mysqlcon.host;

您正在创建实例mysqlcon,但您直接使用它。您的类中没有构造函数,因此每个字段都为null,^。