2016-11-08 64 views

回答

2

我从来没有使用过场景构建器,但是您可以在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); 
    } 

} 
0

让我们先从scenebuilder开始,打开fxml文件。从Scenebuilder库中拖放ImageView(右侧面板)。一旦添加,选择ImageView并在这种情况下给它一个fx:id“iView”,然后转到Code部分并在OnMouseClicked字段中添加一个函数名称。我将我的函数命名为“LoginUser”。

enter image description here

现在打开在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

)创建Button或(Label)在SceneBuilder

)添加ImageView使用SceneBuilder

相关问题的按钮:here

)使用CSS:

enter image description here

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的透明区域接收click事件发挥。

)一个ActionListenerMouseListenerButton使用SceneBuilder或纯Java Code


添加