スケジュール前のページJavaの応用2次のページ

JAVAの応用3:マウスの使用,その他のコントロール(選択)

ここでは,「マウス」を操作することによって,処理が実行されるプログラムを作ってみましょう.

マウスボタンを使う

マウスを使用するプログラムを作るためには,マウスの操作によって生じる様々な種類のイベントを処理する必要があります.

マウスの操作によって発生するイベントには次のようなものがあります.

イベント説明
MOUSE_CLICKEDマウス・ボタンがクリックされたときに発生
MOUSE_DRAGGEDマウスをドラッグしたときに発生
MOUSE_ENTEREDマウスが領域に入ったときに発生
MOUSE_EXITEDマウスが領域から出たときに発生
MOUSE_MOVEDボタンを押さずにマウスが移動したときに発生
MOUSE_PRESSEDマウス・ボタンが押されたときに発生
MOUSE_RELEASEDマウス・ボタンが放されたときに発生

例:お絵描き

マウスを使って絵を描くプログラムを作ってみましょう.

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.input.MouseEvent;

public class FirstMouse extends Application{
	
    public static void main(String[] args) {
        launch(args);
    }

    double x1,x2,y1,y2;
    
    Canvas canvas = new Canvas(600,600);
	GraphicsContext gc = canvas.getGraphicsContext2D();
    
    @Override
    public void start(Stage stage) throws Exception {
    	
    	stage.setTitle("Application FirstMouse");
    	
    	VBox root = new VBox();
    	
    	root.setAlignment(Pos.CENTER);
    	root.setPadding(new Insets(10,10,10,10));
    	root.setSpacing(2.0);
   	
    	gc.setLineWidth(1.0);
    	gc.setStroke(Color.BLACK);
       	
    	canvas.setOnMousePressed(event -> paintInfo(event));
    	canvas.setOnMouseDragged(event -> paintInfo(event));
    	
    	root.getChildren().addAll(canvas);
    	
    	Scene scene = new Scene(root);
    	stage.setScene(scene);
        stage.show();
    }
    
    private void paintInfo(MouseEvent event) {
        
    	if(event.getEventType()==MouseEvent.MOUSE_PRESSED) {
    		x2 = event.getX();
    		y2 = event.getY();
    		gc.moveTo(x2, y2);
    	}
    	if(event.getEventType() == MouseEvent.MOUSE_DRAGGED) {
    		x1 = x2;
    		y1 = y2;
    		x2 = event.getX();
    		y2 = event.getY();
    		gc.strokeLine(x1, y1, x2, y2);
    	}
    	
    	
    	
    }

}

ComboBoxを使う

プログラムへの入力を,表示された選択肢から行うコントロールの一つがComboBoxです.

使用方法は,次のように ComboBoxを作成し,選択肢の登録をします.その後はイベント処理の部分を記述して入力を処理します.

ComboBox<String> combobox1 = new ComboBox<>();		//ComboBoxをcombobox1として作成
combobox1.getItems().addAll("BLACK","BLUE","GREEN","RED");	//選択肢を登録
combobox1.setValue("BLACK");		//最初の設定

選択した値は,getValue()で文字列として取得できます.

String s = combobox1.getValue();

ComboBoxを使用する場合は,次のimport文が必要です.

import javafx.scene.control.ComboBox;

練習問題12ー1

以下のどれかのプログラムを作りなさい.

  1. お絵かきの例題に,ComboBoxを使用して色や線の太さを変更する部分を付け加えたプログラム.クラス名は,「Ex12_1a」とする.
  2. お絵かきの例題を参考に,ComboBoxを使用して様々な図形を描くプログラム.クラス名は,「Ex12_1b」とする.
  3. 上記の両方の機能を持つプログラム.クラス名は,「Ex12_1c」とする.
  4. 今までに使用した以外のJavaFXの様々なコントロールを自分で調べ,それらを使用したプログラムを作る.クラス名は,「Ex12_1d」とする.

スケジュール前のページJavaの応用2次のページ