java如何将变量从尝试传递到操作事件?
try(FileInputStream fis = (new FileInputStream("*FILE*"))){
Player player = new Player(fis);
Button btn = new Button();
btn.setText("Start");
Button btn2 = new Button();
btn2.setText("Stop");
}catch(JavaLayerException | IOException e ){
e.printStackTrace();
}
btn.setOnAction((ActionEvent event) -> {
this.player = player;
try{
new playMusic(player).start();
}catch(Exception e){
e.printStackTrace();
}
});
btn2.setOnAction((ActionEvent event)->{
player.close();
});
- 感觉这应该很简单,但我在任何地方都找不到任何东西
# 1 楼答案
要么将访问变量的代码移到
try
块内,要么在try
块外声明变量,并确保在注册事件处理程序时对其进行初始化而不是
您还可以使用
相反
编辑
如果}
Player
没有读取构造函数中的所有代码,则不能将其关闭。不过,尝试使用资源可以做到这一点。更改为try
{