效果:右击按钮出现item如下图所示
小火车图标:,来源:阿里矢量图标
package sample;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.image.ImageView;
import javafx.scene.input.ContextMenuEvent;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
AnchorPane ap = new AnchorPane();
ap.setStyle("-fx-background-color: azure");
Button b1 = new Button("B1");
ap.getChildren().addAll(b1);
ContextMenu ctm = new ContextMenu();
MenuItem item2 = new MenuItem("item2");
MenuItem item3 = new MenuItem("小火车", new ImageView("icon/hcc.png"));
MenuItem item4 = new MenuItem("item4");
MenuItem item5 = new MenuItem("item5");
ctm.getItems().addAll(item2, item3, item4, item5);//右击出现
b1.setContextMenu(ctm);
b1.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() {//右击触发
@Override
public void handle(ContextMenuEvent event) {
System.out.println("qweqwewq");
}
});
Scene scene = new Scene(ap);
primaryStage.setScene(scene);
primaryStage.setTitle("Java FX - ContextMenu ");
primaryStage.setWidth(500);
primaryStage.setHeight(300);
primaryStage.show();
}
}