なぜだめなのだろう
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;
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("太");
//int futo=getLineWidth();
int futo = 1;
transLine.setOnAction((ActionEvent event)->{
//int futo=getLineWidth();
//int futo=1;
futo = futo+2;
gc.setLineWidth(futo);
System.out.println("futo is"+futo);
});
//-------------------
//ボタンに色を付ける
//-------------------
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);
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("Exe35");
myStage.setScene(scene);
myStage.show();
}
private int getLineWidth() {
return 0;
}
}
Local variable Futo defined in an enclosing scope must be final or effectively final.
囲みスコープで定義されたローカル変数Futoは、最終または実質的に最終でなければなりません。
このエラーは?