2013-07-29 7 views
2

이 막대는 사용자가 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) 
+0

progressBar 객체에서 ".setStringPainted (true)"를 사용하여 "stringPainted"를 true로 설정 했습니까? 그렇지 않으면 문자열이 표시 줄에 나타나지 않습니다. 값을 갱신하려면, "BoundedRangeModel"도 봐야합니다. 즉, Javadoc을 살펴보십시오. (누가 RTFM을 말 했나요?)) http://docs.oracle.com/javase/7/docs/api/javax/swing/JProgressBar.html#setValue(int) –

+0

예. 그러나 그때가 아니라면 오류를 인쇄하지 않고 그냥 업데이트하지 않겠습니까? 어느 것이 또한 나에게 생각 나게한다, 나는 나의 잘못을 게시해야한다. – TehBawz

+0

Progress 개체의 클래스는 무엇입니까? NPE는 ipProgress의 ".set"메소드에서 올 수 있습니다. ipProgress! = null이 맞습니까? –

답변

0

사실, 이벤트 대기열을 사용하여 호출해야했습니다. 모든 피드백에 감사드립니다.