我創建了一個引發內存泄漏的示例應用程序。創建多個場景時的JavaFX 2.0內存泄漏
問題是我需要「重新加載」場景。如果我有兩個場景(Bar和Foo),每個場景都有一個按鈕(ButtonBar和ButtonFoo),則按鈕會更改當前場景以創建新場景。 如果我保持單擊ButtonBar和ButtonFoo 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" />
是否有一個真正的內存泄漏問題?有誰知道另一種方式來做到這一點?我希望這個應用能夠保持活力並永遠做出改變,就像服務一樣。 感謝
是的。任何與Scene Builder的交互都會以指數方式增加內存......這是從Java網站下載的最新版本。 WTF在這裏?這是你發佈後的2年... – crush 2014-09-10 15:14:05