帮助我的私人字符串用户名返回null!
好的,我创建了一个 JFrame 窗口,其中包含一个名为 usernameID 的 JTextField 和一个名为 submit 的按钮,当单击提交时,将调用一个 actionlistener,它调用 setUsername() 方法,该方法将私有字符串 username 设置为等于 usernameID.getText(),一次它被设置了。
所以,我的 getUsername() 返回变量 username,但是当它返回时,返回的值为 null,对我来说我认为有问题,我使用 setUsername 方法将 usernameID.getText() 的值设置为 usernameID.getText() .
所以请帮忙,我将如何让名为 getUsername 的方法返回用户在 usernameID 中输入的内容?
这是我的代码:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class GUI {
private JFrame frame = new JFrame();
private String user;
GUI() {
FlowLayout layout = new FlowLayout();
JLabel usernameText = new JLabel("Username:");
final JTextField usernameID = new JTextField(17);
JButton submit = new JButton("Submit");
frame.setTitle("Enter username");
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setSize(300, 100);
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.requestFocus();
frame.setLayout(layout);
frame.add(usernameText);
frame.add(usernameID);
frame.add(submit);
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setUsername(usernameID.getText());
frame.setVisible(false);
frame.dispose();
}
});
}
private void setUsername(String text) {
user = text;
}
String getUsername() {
return user;
}
}
这是调用它的类。
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
public class Play extends BasicGameState {
public Play(int state) {
}
@Override
public void init(GameContainer gc, StateBasedGame sbg)
throws SlickException {
gc.setShowFPS(false);
@SuppressWarnings("unused")
Player player = new Player(getName(), 100, 100);
}
private String getName() {
GUI gui = new GUI();
System.out.println("Username: "+gui.getUsername());
return gui.getUsername();
}
@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g)
throws SlickException {
}
@Override
public void update(GameContainer gc, StateBasedGame sbg, int delta)
throws SlickException {
}
@Override
public int getID() {
// TODO Auto-generated method stub
return 1;
}
}