JavaFx:如何使用 scenebuilder 制作可点击的图像
JavaFx: how make a clickable image using scenebuilder
我想知道如何使用 ImageView 制作可点击的图像,这会将我带到另一个使用场景生成器的 FXML。我正在使用日食 IDE.
我从未使用过场景生成器,但您可以在 ImageView
对象上调用 setOnMouseClicked(EventHandler<MouseEvent> event)
。
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);
}
}
让我们从 scenebuilder 开始,打开 fxml 文件。从 Scenebuilder 库(右面板)中拖放 ImageView。添加后,select ImageView 并在本例中给它一个 fx:id "iView",然后转到代码部分并在 OnMouseClicked 字段中添加一个函数名称。我将函数命名为 "LoginUser".
:
现在在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 文件。
1)在SceneBuilder
中创建一个Button
或(Label
)
2)使用 SceneBuilder
添加一个 ImageView
到按钮
相关问题:
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;
}
如果你想让 Button
的透明区域接收点击事件,你可以使用方法 setPickOnBounds(true/false);
。
4)使用 SceneBuilder
或纯 Java Code
添加 ActionListener
或 MouseListener
到 Button
我想知道如何使用 ImageView 制作可点击的图像,这会将我带到另一个使用场景生成器的 FXML。我正在使用日食 IDE.
我从未使用过场景生成器,但您可以在 ImageView
对象上调用 setOnMouseClicked(EventHandler<MouseEvent> event)
。
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);
}
}
让我们从 scenebuilder 开始,打开 fxml 文件。从 Scenebuilder 库(右面板)中拖放 ImageView。添加后,select ImageView 并在本例中给它一个 fx:id "iView",然后转到代码部分并在 OnMouseClicked 字段中添加一个函数名称。我将函数命名为 "LoginUser".
:
现在在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 文件。
1)在SceneBuilder
Button
或(Label
)
2)使用 SceneBuilder
ImageView
到按钮
相关问题:
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;
}
如果你想让 Button
的透明区域接收点击事件,你可以使用方法 setPickOnBounds(true/false);
。
4)使用 SceneBuilder
或纯 Java Code
添加 ActionListener
或 MouseListener
到 Button