Ben bir JEditorPane veya JTextPane bir URL yüklemeye çalışıyorum ama URL bir dinamik olarak oluşturulan bir PHP sayfası. Sonra benim Java uygulaması PHP sayfasından çıkış işlemek istiyorum. PHP sayfası ben doğru oluşturulan bu kontrol için en az bir dize her zaman çıkış kullanabilirsiniz olacak.
Ben denemek ve kullanarak sayfasını ayarladıktan sonra sayfa düz işleme konursa
JEditorPane.setPage(URL);
if( outputTracker.getText().contains("desktop_process") )
Ben JEditorPane için bir metin / düz içerik türünü belirtmek olsa bile, boş bir HTML sayfası döndürür:
System.out.println(outputTracker.getText() );
Ben PHP sayfası aşağıdaki yöntem doğru çıktılarının her zaman döner gibi yükleme bitmiş değil, çünkü bu olduğunu varsayalım.
Şu anda ben sayfasını ayarlama ve daha sonra bir Swing Timer başlayan ve sayfa doğru oluşturulan dize içeriyorsa her 200ms kontrol ediyorum:
private void getPageBtnActionPerformed(java.awt.event.ActionEvent evt) {
outputTracker.setPage("URL_GOES_HERE?variables=x&y=a");
check_response_timer.start();
}
ActionListener checkAction = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if( outputTracker.getText().contains("desktop_process") ) {
System.out.println("Checking results...");
check_response_timer.stop();
process_response();
} else {
num_checks++;
System.out.println("Checking results...");
if( num_checks == 10 ) {
check_response_timer.stop();
checkLater = true;
responseLbl.setText("Connection timeout. Please click reconnect to check again.");
num_checks = 0;
}
}
}
};
private Timer check_response_timer = new Timer(200,checkAction);
This works fine. At current server loads and the current complexity of the PHP pages being loaded the loop stops after the first iteration but it just seems a little inefficient and I don't want to have to keep checking if the page is going to take several seconds to load during heavy server loads or on more complex PHP pages.
Sayfa yükleme bitmiş kontrol etmek için daha iyi bir yolu olup olmadığını merak ediyorum.
Ben JEditorPane.read (inputStream) yöntemini kullanın ya da Swing Arka Plan Worker thread sayfasını ayarlayın ve sonra işçinin bitti () denir PHP sayfasının çıktısını süreç olabilir diye merak ediyordum.
Ve editorpane zaten görünür değil gibi bir editör bölmesinin kullanımı olmadan dinamik olarak üretilen çıktı düz bir dizeye okuma, PHP çıktı yükleme daha iyi bir yolu var mı?
Bu yeterince açıktır umarım.
Teşekkürler.