이 막대는 사용자가 URL 변환 진행 상황을 보여주기 위해 사용되며, 기본적으로 웹 사이트 URL 목록을 입력하면 IP 주소로 변환됩니다.이 모두가 완벽하게 작동합니다 하지만 긴 목록에서 몇 초가 걸릴 수 있으므로 진행률 표시 줄을 추가하는 이유입니다.진행률을 추가하려고하면 진행률 막대가 null이됩니다.
사용자에게 다운로드 비율을 제공하기 위해 진행률 표시 줄을 사용했지만,이 경우에는 내가 제공 한 값이 마음에 들지 않습니다. 내가 값을 인쇄 할 경우 나는 새 문자열 또는 충돌 진행률 표시 줄에 대한 새 값을 설정하려고하지만 경우
System.out.println(Progress.percentage);
를 인쇄하는 동안은, 예를 들어 제대로
20
40
60
80
100
를 인쇄합니다.
try {
Progress.main(null);
Progress.totalToDo = IPArray.size();
for (String URL : IPArray) {
URL url = new URL(URL);
InetAddress address = InetAddress.getByName(url.getHost());
String temp = address.toString();
String IP = temp.substring(temp.indexOf("/") + 1, temp.length());
URLArray.add(IP);
Progress.percentage = (URLArray.size() * 100)/Progress.totalToDo;
Progress.ipProgress.setString(Progress.percentage + "%");
Progress.ipProgress.setValue(Progress.percentage);
result += IP + System.getProperty("line.separator");
}
IPFrame.textAreaIP.setText(result);
GEOLookup.check(IPFrame.textAreaIP.getText());
}
더 많은 정보가 필요하면 두려워하지 말고 도움을 청하십시오.
편집 : 죄송합니다 그것을 인쇄 오류를 게시하는 것을 잊었다, 나는 한 번 응용 프로그램이 잘 진행 제거하기 때문에 오류가
Progress.ipProgress.setString(Progress.percentage + "%");
Progress.ipProgress.setValue(Progress.percentage);
에 의해 발생 것을 알고있다. 인쇄 된 오류는 아래에 있습니다.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.elvazar.ipgrabber.IPGrabber.convert(IPGrabber.java:86)
at com.elvazar.ipgrabber.IPFrame.jButton4ActionPerformed(IPFrame.java:335)
at com.elvazar.ipgrabber.IPFrame.access$700(IPFrame.java:23)
at com.elvazar.ipgrabber.IPFrame$8.actionPerformed(IPFrame.java:125)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
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:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
progressBar 객체에서 ".setStringPainted (true)"를 사용하여 "stringPainted"를 true로 설정 했습니까? 그렇지 않으면 문자열이 표시 줄에 나타나지 않습니다. 값을 갱신하려면, "BoundedRangeModel"도 봐야합니다. 즉, Javadoc을 살펴보십시오. (누가 RTFM을 말 했나요?)) http://docs.oracle.com/javase/7/docs/api/javax/swing/JProgressBar.html#setValue(int) –
예. 그러나 그때가 아니라면 오류를 인쇄하지 않고 그냥 업데이트하지 않겠습니까? 어느 것이 또한 나에게 생각 나게한다, 나는 나의 잘못을 게시해야한다. – TehBawz
Progress 개체의 클래스는 무엇입니까? NPE는 ipProgress의 ".set"메소드에서 올 수 있습니다. ipProgress! = null이 맞습니까? –