package application;
import javafx. application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx. scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx. stage.Stage;
public class EXE3501
extends Application {
double posX,posY;
int hoge;//線の太さ //here? Yes,here
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage myStage) {
Canvas canvas = new Canvas(500,500);
GraphicsContext gc = canvas.getGraphicsContext2D();
int Futo=1;
canvas.setOnMousePressed(e -> {
posX = e.getX();
posY = e.getY();
});
canvas.setOnMouseDragged(e -> {
gc.strokeLine(posX,posY,e.getX(),e.getY());
posX = e.getX();
posY = e.getY();
});
//-------------------
//ボタン群
//-------------------
Button clearB = new Button("クリア");//clearBという変数にボタン
clearB.setOnAction((ActionEvent event)->{
gc.clearRect(0,0,canvas.getWidth(),canvas.getHeight());
});
Button drawB = new Button("black");
drawB.setOnAction((ActionEvent event)->{
gc.setStroke(Color.BLACK);
//gc.clearRect(0,0,canvas.getWidth(),canvas.getHeight());
});
Button drawR = new Button("red");
drawR.setOnAction((ActionEvent event)->{
gc.setStroke(Color.RED);
//gc.clearRect(0,0,canvas.getWidth(),canvas.getHeight());
});
Button drawG = new Button("green");
drawG.setOnAction((ActionEvent event)->{
gc.setStroke(Color.GREEN);
});
Button drawBlue = new Button("blue");
drawBlue.setOnAction((ActionEvent event)->{
gc.setStroke(Color.BLUE);
});
Button drawOrange = new Button("orange");
drawOrange.setOnAction((ActionEvent event)->{
gc.setStroke(Color.ORANGE);
});
Button transLine = new Button("太");
hoge=getLineWidth();
transLine.setOnAction((ActionEvent event)->{
hoge = hoge+2;
gc.setLineWidth(hoge);
//System.out.println("hoge is"+ hoge);
});
Button transLine2 = new Button("細");
hoge=getLineWidth();
transLine2.setOnAction((ActionEvent event)->{
if(hoge>=3) {
hoge = hoge-2;
}else {
hoge=1;//線の太さを1より小さくしない
}
gc.setLineWidth(hoge);
});
//-------------------
//ボタンに色を付ける
//-------------------
drawB.setStyle("-fx-background-color:black; -fx-text-fill:white;");
drawR.setStyle("-fx-background-color:red; -fx-text-fill:white;");
drawG.setStyle("-fx-background-color:green; -fx-text-fill:white;");
drawBlue.setStyle("-fx-background-color:blue; -fx-text-fill:white;");
drawOrange.setStyle("-fx-background-color:orange; -fx-text-fill:white;");
//-------------------
//pane
//-------------------
BorderPane pane = new BorderPane();
HBox hbox = new HBox(8);
hbox.getChildren().addAll(clearB,drawB,drawR, drawG,drawBlue,drawOrange,transLine,transLine2);
hbox.setAlignment(Pos.CENTER);
pane.setStyle("-fx-background-color:lightgray;");
pane.setBottom(hbox);
pane.setCenter(canvas);
Scene scene = new Scene(pane,500,550,Color.LIGHTGRAY);
myStage.setTitle("drawing");
myStage.setScene(scene);
myStage.show();
}
private int getLineWidth() {
return 0;
}
}
これで通った
ここで宣言すると成功する
なぜだ