我创建了一个引发内存泄漏的示例应用程序。创建多个场景时的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