【发布时间】:2012-09-23 17:19:01
【问题描述】:
大家好,我正在尝试从 Java 书籍中做一个练习,我需要做的是画线,并且在文本字段中我必须说明线之间的距离必须有多远。所有这些都必须在一个循环中,所以没有硬编码的行。
我已经按照我认为应该完成的方式完成了所有工作,但是我的控制台中出现了一些奇怪的错误,并且不断出现。错误代码如下:
线程“AWT-EventQueue-0”中的异常 java.lang.NumberFormatException:对于输入字符串:“” 在 java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 在 java.lang.Integer.parseInt(Integer.java:470) 在 java.lang.Integer.parseInt(Integer.java:499) 在 h03.LinePanel.paintComponent(LinePanel.java:30) 在 javax.swing.JComponent.paint(JComponent.java:1037) 在 javax.swing.JComponent._paintImmediately(JComponent.java:5106) 在 javax.swing.JComponent.paintImmediately(JComponent.java:4890) 在 javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:812) 在 javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714) 在 javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:694) 在 javax.swing.RepaintManager.access$700(RepaintManager.java:41) 在 javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1672) 在 java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702) 在 java.awt.EventQueue.access$400(EventQueue.java:82) 在 java.awt.EventQueue$2.run(EventQueue.java:663) 在 java.awt.EventQueue$2.run(EventQueue.java:661) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:672) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
因为我是 Java 新手,所以我不知道我做错了什么以及如何解决此错误,因此我将不胜感激!我用于此的面板中的代码是
DrawLines lines = new DrawLines();
public void paintComponent(Graphics g) {
super.paintComponent(g);
int positionY = getHeight() - Integer.parseInt(afstand.getText()); // absolut positioning
int yPos = 0;
while(yPos <= positionY) {
lines.drawLines(g, 0, yPos, getWidth(), yPos);
yPos = yPos + Integer.parseInt(afstand.getText());
}
}
public void actionPerformed(ActionEvent e) {
try {
repaint();
}
catch(NumberFormatException err) {
JOptionPane.showMessageDialog(null, "something went wrong! heeft u wel een waarde opgegeven?");
}
}
【问题讨论】:
标签: java