private JTextField getJTextFieldUser()
{
if (jTextFieldUser == null)
{
jTextFieldUser = new JTextField();
jTextFieldUser.setBounds(new Rectangle(200, 15, 200, 15));
}
return jTextFieldUser;
}
private JPanel getJContentPane()
{
if (jContentPane == null)
{
jLabelUser = new JLabel();
jLabelUser.setBounds(new Rectangle(15, 15, 150, 15));
jLabelUser.setText("登录帐号:");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(jLabelUser, null);
jContentPane.add(getJTextFieldUser(), null);
jContentPane.add(getJButtonInput(),null);
}
return jContentPane;
}
private JButton getJButtonInput()
{
if (jButtonInput == null)
{
jButtonInput = new JButton();
jButtonInput.setText("输入完成");
jButtonInput.setSize(new Dimension(100, 28));
jButtonInput.setLocation(new Point(50, 350));
jButtonInput.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
chromeob.userId = mainFrame.jTextFieldUser.getText().trim();// 获取用户名
System.out.println(chromeob.userId);
// if (chromeob.userId.equals(""))
// {
// JOptionPane.showMessageDialog(null, "数据输入错误");
// }
// else
// {
// JOptionPane.showMessageDialog(null, "数据输入成功");
// }
}
});
}
return jButtonInput;
}
setContentPane(getJContentPane());
代码大概如上所述,现在我在输入框里输入用户名,点击输入完成,但是会出现空指针错误,说明值没有传进去啊?仍然是初始化的空值。
这个地方应该怎么写才能获取到手动输入的值呢?
------解决思路----------------------
gettext();
------解决思路----------------------
这个问题很简单!你自己写的类继承JFrame,在类中定义JTextField name;JPasswordField password;
然后在类的构造函数里初始化这两个属性,然后添加到JFrame中,
获得值用name.getText();和password.getText();
------解决思路----------------------
就是调用getText()方法就可以获取,你可能是其他地方有问题,我把你的代码测试了一下,可以获取值
public class Client extends JFrame{
private JTextField jTextFieldUser;
private JPanel jContentPane;
private JLabel jLabelUser;
private JButton jButtonInput;
public Client(){
this.setSize(806, 267);
this.setLayout(null);
this.add(getJTextFieldUser(), null);
this.add(getJButtonInput(), null);
this.setVisible(true);
}
private JTextField getJTextFieldUser()
{
if (jTextFieldUser == null)
{
jTextFieldUser = new JTextField();
jTextFieldUser.setBounds(new Rectangle(200, 15, 200, 15));
}
return jTextFieldUser;
}
private JButton getJButtonInput()
{
if (jButtonInput == null)
{
jButtonInput = new JButton();
jButtonInput.setText("输入完成");
jButtonInput.setSize(new Dimension(100, 28));
jButtonInput.setLocation(new Point(50, 350));
jButtonInput.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
String userId = jTextFieldUser.getText().trim();// 获取用户名
System.out.println(userId);
// if (chromeob.userId.equals(""))
// {
// JOptionPane.showMessageDialog(null, "数据输入错误");
// }
// else
// {
// JOptionPane.showMessageDialog(null, "数据输入成功");
// }
}
});
}
return jButtonInput;
}
public static void main(String[] args) {
new Client();
}
}
------解决思路----------------------
调用getText()方法就是获取输入内容的,你如果把这做好了,还不行的话,那就是你的事件处理有问题。