2016-04-22 4 views
0

JavaFXを使用して簡単なスケッチプログラムを作成しています。私は、四角形、円または線の描画を切り替えることができるようにしたいと思います。これらのオプションのメニューには、ラジオボタンを切り替えることができます。JavaFX - 条件文でisSelected()を使用する

if/else文を記述することで、選択されている関数に応じて3つの異なる関数のコードを記述することはできますか?現時点では線を描くだけです。これは、これまでの私のコードの一部です(申し訳ありません、それは厄介だ):

canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED, 

    new EventHandler<MouseEvent>(){ 

     @Override 
     public void handle(MouseEvent event) { 
      if (toggleGroup.getSelectedToggle() == line) { 
       graphicsContext.lineTo(event.getX(), event.getY()); 
       graphicsContext.setStroke(colorPicker1.getValue()); 
       graphicsContext.stroke(); 
      } else if (toggleGroup.getSelectedToggle() == rectangle) { 
       // etc... 
      } // etc... 

     } 
    } 
}); 

は明らかに、コードAの順序を変更する必要があるかもしれません:あなたはかなりすでにあなたが何をする必要があるか説明してきた

package Sketchbook; 



public class Sketchbook extends Application { 

final static int CANVAS_WIDTH = 800; 
final static int CANVAS_HEIGHT = 600; 

ColorPicker colorPicker1; 
ColorPicker colorPicker2; 


@Override 

public void start(final Stage primaryStage) { 

final Canvas canvas = new Canvas(CANVAS_WIDTH, CANVAS_HEIGHT); 
final GraphicsContext graphicsContext = canvas.getGraphicsContext2D(); 
initDraw(graphicsContext); 

canvas.addEventHandler(MouseEvent.MOUSE_PRESSED, 
new EventHandler<MouseEvent>(){ 

@Override 
public void handle(MouseEvent event) { 
graphicsContext.beginPath(); 
graphicsContext.moveTo(event.getX(), event.getY()); 
graphicsContext.setStroke(colorPicker1.getValue()); 
graphicsContext.stroke(); 
} 
}); 

canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED, 
new EventHandler<MouseEvent>(){ 
@Override 
public void handle(MouseEvent event) { 
graphicsContext.lineTo(event.getX(), event.getY()); 
graphicsContext.setStroke(colorPicker1.getValue()); 
graphicsContext.stroke(); 
} 
}); 

canvas.addEventHandler(MouseEvent.MOUSE_RELEASED, 
new EventHandler<MouseEvent>(){ 

@Override 
public void handle(MouseEvent event) { 

} 
});  

Group root = new Group(); 

ToggleGroup toggleGroup = new ToggleGroup(); 
RadioButton rectangle = new RadioButton("Rectangle"); 
RadioButton circle = new RadioButton("Circle"); 
RadioButton line = new RadioButton("Line"); 
rectangle.setSelected(true); 
rectangle.setToggleGroup(toggleGroup); 
circle.setToggleGroup(toggleGroup); 
line.setToggleGroup(toggleGroup); 

答えて

1

変数を使用する前に変数が宣言され、初期化されていることを確認することはほとんどありません。

+0

本当にありがとうございます - 私はそれをoverthinkingしていたと思います!すべて今働いている。 –

関連する問題