我想知道如何使用ImageView制作可点击的图像,它使用场景构建器将我带到另一个FXML。我正在使用eclipse IDE。
答案 0 :(得分:5)
我从未使用过场景构建器,但您可以在setOnMouseClicked(EventHandler<MouseEvent> event)
对象上调用ImageView
。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ImageClickExample extends Application {
@Override
public void start(Stage primaryStage) {
ImageView img = new ImageView("http://i.stack.imgur.com/oURrw.png");
img.setPickOnBounds(true); // allows click on transparent areas
img.setOnMouseClicked((MouseEvent e) -> {
System.out.println("Clicked!"); // change functionality
});
Scene scene = new Scene(new StackPane(img));
primaryStage.setTitle("Image Click Example");
primaryStage.setScene(scene);
primaryStage.sizeToScene();
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
答案 1 :(得分:1)
让我们从scenebuilder开始,打开fxml文件。从Scenebuilder库中拖放ImageView(右侧面板)。添加后,选择ImageView并给它一个fx:id&#34; iView&#34;在这种情况下,然后转到代码部分并在OnMouseClicked字段中添加一个函数名称。我将我的功能命名为#34; LoginUser&#34;。
现在在eclipse IDE中打开控制器文件。
使用@FXML标记定义函数:
@FXML
private boolean LoginUser() throws ClassNotFoundException {
Stage mainStage = (Stage) iView.getScene().getWindow();
try {
Parent root = FXMLLoader.load(getClass().getResource("file.fxml"));
Scene scene = new Scene(root);
mainStage.setScene(scene);
mainStage.setTitle("Test Window");
}
catch(Exception e){}
}
在图像上单击加载您想要的fxml文件。
答案 2 :(得分:1)
1 )在Button
Label
或(SceneBuilder
)
2 )使用ImageView
SceneBuilder
相关问题:here
3 )使用CSS:
1)Inside the `SceneBuilder` or
2)Using an external css file(with styleclass or with css id) as shown above i have added all the three ways(choose one :) ):
.crazyButton{
-fx-background-color:transparent;
-fx-border-color:transparent;
-fx-text-fill:transparent;
}
or
#myButton{
-fx-background-color:transparent;
-fx-border-color:transparent;
-fx-text-fill:transparent;
}
如果您希望setPickOnBounds(true/false);
的透明区域接收点击事件,则可以使用方法Button
。
4 )使用ActionListener
或普通MouseListener
Button
添加SceneBuilder
或Java Code