【发布时间】:2015-04-19 07:49:12
【问题描述】:
JTextField player1Text = new JTextField();
player1Text.setSize(400, 400);
inputWindow.add(player1Text);
System.out.println(player1Text.getText().length());
这将打印零,即使我在窗口中出现的文本框中输入了一些文本。不过,
JTextField player1Text = new JTextField("input");
player1Text.setSize(400, 400);
inputWindow.add(player1Text);
System.out.println(player1Text.getText().length());
这将打印 5,因为那是“输入”的长度。我该怎么做才能获得实际的输入文本?
编辑:这是我现在的全部代码。每当我运行它时,我都会收到一个空指针异常。
public class NamesInterface extends JFrame implements ActionListener {
Player player1;
Player player2;
JTextField player1Text;
JTextField player2Text;
JButton startButton = new JButton("Start");
public NamesInterface() throws UnexpectedFormatException, IOException {
super();
setSize(500, 1000);
setLayout(new BorderLayout());
setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel inputWindow = new JPanel();
inputWindow.setSize(500, 200);
inputWindow.setLayout(new GridLayout(3, 1));
inputWindow.add(new JLabel("Enter Player 1 name:"));
JTextField player1Text = new JTextField();
player1Text.setSize(400, 400);
inputWindow.add(player1Text);
inputWindow.add(new JLabel("Enter Player 2 name:"));
JTextField player2Text = new JTextField();
player2Text.setSize(400, 400);
inputWindow.add(player2Text);
startButton.setSize(500, 500);
startButton.addActionListener(this);
inputWindow.add(startButton);
this.add(inputWindow, BorderLayout.CENTER);
this.validate();
}
@Override
public void actionPerformed(ActionEvent e){
if (e.getSource() == startButton) {
System.out.println(player1Text.getText());
System.out.println(player2Text.getText());
System.exit(0);
}
}
抛出的异常:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at eg.edu.guc.yugioh.gui.NamesInterface.actionPerformed(NamesInterface.java:64)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3322)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:724)
at java.awt.EventQueue$4.run(EventQueue.java:722)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
【问题讨论】:
标签: java string user-interface input textbox