Java の ContextMenu の用法は?
JavaのContextMenuは、特定のコンポーネント上で文脈に関連したメニューオプションを表示するために使用されるポップアップメニューです。ユーザーがコンポーネント上で右クリックすると、ContextMenuが表示され、ユーザーが選択できるオプションのセットが提供されます。
ContextMenuを使用する手順は次のとおりです。
- ContextMenuオブジェクトの作成:ContextMenuクラスのコンストラクタを使用して、コンテクストメニューオブジェクトを作成します。
- メニューアイテムを作成する: MenuIetmクラスのコンストラクタを使用してメニューアイテムオブジェクトを作成し、ContextMenuオブジェクトに追加する。
- コンポーネントにContextMenuを紐づけるには、コンポーネントのsetContextMenu()メソッドでContextMenuを紐づけます。これにより、ユーザーがコンポーネント上で右クリック時にContextMenuが表示されます。
- メニュー項目を選択するためのイベント処理を追加する: ユーザーがメニュー項目を選択したら、対応するアクションを実行できるようにイベント処理プログラムを追加する。
以下はContextMenuをJavaFXで使用する方法を示す簡単なサンプルコードです。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class ContextMenuExample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
// 创建一个矩形
Rectangle rectangle = new Rectangle(100, 100, Color.BLUE);
// 创建上下文菜单
ContextMenu contextMenu = new ContextMenu();
MenuItem menuItem = new MenuItem("Change Color");
// 添加菜单项到上下文菜单
contextMenu.getItems().add(menuItem);
// 将上下文菜单与矩形关联
rectangle.setOnContextMenuRequested(event -> {
contextMenu.show(rectangle, event.getScreenX(), event.getScreenY());
});
// 处理菜单项的选择
menuItem.setOnAction(event -> {
rectangle.setFill(Color.RED);
});
root.getChildren().add(rectangle);
Scene scene = new Scene(root, 200, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
}
上記の例では、矩形とコンテキストメニューが作成されました。ユーザーが矩形を右クリックすると、コンテキストメニューが表示され、「色を変える」というメニュー項目が現れます。ユーザーがそのメニュー項目を選択すると、矩形の色は赤になります。