내부에 for 루프 이벤트가있는 jbutton을 누르면 다른 구성 요소가 비활성화됩니다. 루프가 완료되면 왜 다른 버튼이나 스윙 구성 요소가 루프를 사용하지 못하게합니까?
try{
InetAddress localhost = InetAddress.getLocalHost();
byte[] ip = localhost.getAddress();
for(int i=1;i<254;i++){
ip[3]=(byte)i;
final InetAddress address = InetAddress.getByAddress(ip);
if(address.isReachable(1000)){
listModel1.addElement(address);
System.out.println(address + "-Machine is turned on and can be ping.");
Rectangle progressRec = jProgressBar1.getBounds();
progressRec.x = 0;
progressRec.y = 0;
jProgressBar1.setValue(i);
jProgressBar1.paintImmediately(progressRec);
}
}
jList1.setModel(listModel1);
}catch(Exception e){
e.printStackTrace();
}
그런 다음, 다른 구성 요소가 사용되었다 : 여기
는 내가하는 JButton에서이 코드입니다? 어떻게 처리할까요? 미리 감사드립니다 ...
편집 코드 : 당신은 그들이 응답하지 의미하는 '장애인'으로, 아마도
try{
InetAddress localhost = InetAddress.getLocalHost();
final byte[] ip = localhost.getAddress();
SwingWorker<ListModel, InetAddress> worker = new SwingWorker<ListModel, InetAddress>(){
public ListModel doInBackground() throws UnknownHostException, IOException{
for(int i=1;i<254;i++){
ip[3]=(byte)i;
final InetAddress address = InetAddress.getByAddress(ip);
if(address.isReachable(1000)){
publish(address);
listModel1.addElement(address);
Rectangle progressRec = jProgressBar1.getBounds();
progressRec.x = 0;
progressRec.y = 0;
jProgressBar1.setValue(i);
jProgressBar1.paintImmediately(progressRec);
}
}
return listModel1;
}
@Override
public void process(List<InetAddress> addresses){//there was a problem here.
for(InetAddress address : addresses){
System.out.println(address + "-Machine is turned on and can be ping.");
}
}
@Override
public void done(){
try {
jList1.setModel(get());
} catch (InterruptedException ex) {
Logger.getLogger(NetCafeTime.class.getName()).log(Level.SEVERE, null, ex);
} catch (ExecutionException ex) {
Logger.getLogger(NetCafeTime.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
worker.execute();
}catch(Exception e){
e.printStackTrace();
}
와우, 코딩을 잘 못해서 고마워요. –
당신은 환영합니다 :) 내가 제안한 코드를 테스트/실행하지 않았다는 것에 유의하십시오. 문제가 있다면, 다시 게시하십시오! –
"public void process (List addresses)"스레드에서 문제가 발생했습니다. List 에의 참조가 모호합니다. java.util의 java.util.List 인터페이스와 java.awt의 클래스 java.awt.List가 일치하고 있습니다. 그 의미는 무엇인가? 다시 한 번 감사드립니다 ... –