0
HttpURLConnection을 사용하여 서버에서 파일을 다운로드하고이 파일의 내용으로 ListView를 채 웁니다. 파일의 내용은 name1 # name2 # name ...과 같습니다. 새 스레드로 다운로드 한 다음 배열로 분할하지만 이 배열의 ListView를 채울 수없는 경우, 잘못된 스레드에서 ListView
에 내용을 추가하려는URL의 데이터로 javaFX의 ListView를 채우는 방법은 무엇입니까?
package miz.bjcodes;
import java.io.*;
import java.net.*;
import java.util.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import javax.swing.JOptionPane;
public class FXMLDocumentController implements Initializable {
private static String url = "http://127.0.0.1:8888//bjcodes//";
@FXML private ListView lv;
@FXML private TextArea ta;
@FXML
private void btn1click(ActionEvent event){
new Thread(new Runnable(){
@Override
public void run(){
try{
URL u = new URL(url + "listjava.txt");
HttpURLConnection con = (HttpURLConnection) u.openConnection(Proxy.NO_PROXY);
con.setUseCaches(false);
con.setDoInput(true);
con.connect();
String st;
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
st = br.readLine();
br.close();con.disconnect();
System.out.println(st);
String[] ss = st.split("#",-1);
loadList(ss);
}
catch(Exception ex){}
}
}).start();
}
private void loadList(String[] ss){
for(String str : ss){
lv.getItems().add(str);
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}
내가 그랬어이 : Platform.runLater (새의 Runnable() { 공공 무효 실행() (문자열 str을위한 { :. SS) { lv.getItems() 추가 (STR) ; } } }); . 고맙습니다. –