मैंने एक नमूना एप्लिकेशन बनाया जो मेमोरी लीक को उत्तेजित करता है।एकाधिक दृश्य बनाने पर जावाएफएक्स 2.0 मेमोरी लीक
समस्या यह है कि मुझे दृश्यों को "पुनः लोड" करने की आवश्यकता है। यदि मेरे पास एक बटन (बटन बटन और बटनफू) के साथ दो दृश्य (बार और फू) हैं, तो बटन वर्तमान दृश्य को एक नया बनाते हैं। यदि मैं 5 मिनट (या उससे कम) के लिए बटनबार और बटनफ़ू पर क्लिक करना चाहता हूं, तो उस सरल प्रोग्राम की स्मृति खपत उच्च और उच्च हो जाती है।
Bar.java
public class Bar implements Initializable {
@FXML
private Label label;
@FXML
private void toFoo(ActionEvent event) {
try {
Button button = (Button) event.getSource();
Parent root = FXMLLoader.load(getClass().getResource("Foo.fxml"));
Stage currentStage = (Stage) button.getScene().getWindow();
currentStage.setScene(new Scene(root));
} catch (IOException ex) {
Logger.getLogger(Bar.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
Foo.java ही बदलते डी fxml लोड हो रहा है है।
fxml केवल एक बटन शामिल हैं:
<Button id="buttonBar" layoutX="126" layoutY="90" text="Bar!" onAction="#toFoo" fx:id="buttonBar" />
वहाँ कोई वास्तविक स्मृति रिसाव समस्या है? क्या कोई ऐसा करने का दूसरा तरीका जानता है? मैं चाहता हूं कि यह ऐप जीवित रहे और एक सेवा की तरह हमेशा के लिए परिवर्तन कर रहे हों। धन्यवाद
हां। दृश्य बिल्डर के साथ कोई भी बातचीत गतिशील रूप से बढ़ती है ... यह जावा की साइट से डाउनलोड किया गया नवीनतम संस्करण है। यहां डब्ल्यूटीएफ अब भी जारी है? यह आपकी पोस्ट के 2 साल बाद है ... – crush