2016-11-18 5 views
0

私は割り当てに取り組んでいます。チェックボックスを使用して、テキストを標準から太字、斜体、またはその両方に変換しています。しかし、私は私のコードを実行するとき、私はいくつかのエラーが私のチェックボックスは、私がOracle上でチェックし、文字列を受け入れるコンストラクタがあり、チェックボックスを追加しようとするとノードに変換することはできませんチェックボックスがノードのプロパティを素朴に継承していると思うときは、私のグリッドペインです。ここに私のコードです。何か助けていただきありがとうございます。あなた自身のCheckBoxクラスが使用されているJavaFXでのCheckBoxの問題

import javafx.application.*; 
import javafx.stage.*; 
import javafx.scene.*; 
import javafx.geometry.*; 
import javafx.scene.layout.*; 
import javafx.scene.shape.*; 
import javafx.scene.paint.*; 
import java.util.*; 
import javafx.scene.text.*; 
import javafx.scene.control.*; 
import java.lang.*; 
import javafx.beans.binding.*; 
import javafx.event.*; 
//import javafx.scene.control.CheckBox; 
//import javafx.scene.control.Button; 

public class test extends Application{ 
    protected Text name = new Text(50, 50, "Hello World"); 

    protected BorderPane getPane() { 
    BorderPane masterPane = new BorderPane(); 

    Pane textPane = new Pane(); 
    textPane.getChildren().add(name); 
    //masterPane.setCenter(textPane); 

    GridPane gridPane = new GridPane(); 
    gridPane.setPadding(new Insets(10)); 
    gridPane.setHgap(5); 
    gridPane.setVgap(5); 
    gridPane.add(textPane,0,0); 
    GridPane.setHalignment(textPane, HPos.CENTER); 
    GridPane.setValignment(textPane, VPos.CENTER); 
    masterPane.setCenter(gridPane); 

    // HBox buttonPane = new HBox(1000); 
    Button upBtn = new Button("Up"); 
    Button downBtn = new Button("Down"); 
    GridPane buttonGridPane = new GridPane(); 
    buttonGridPane.add(upBtn,0,0); 
    buttonGridPane.add(downBtn,1,0); 
    buttonGridPane.setPadding(new Insets(10)); 
    buttonGridPane.setHgap(5); 
    buttonGridPane.setVgap(5); 
    buttonGridPane.setHalignment(upBtn, HPos.CENTER); 
    buttonGridPane.setValignment(upBtn, VPos.CENTER); 
    buttonGridPane.setHalignment(downBtn, HPos.CENTER); 
    buttonGridPane.setValignment(downBtn, VPos.CENTER); 
    // buttonPane.getChildren().addAll(upBtn, downBtn); 
    // buttonPane.setAlignment(Pos.CENTER); 
    buttonGridPane.setStyle("-fx-border-color: cyan"); 
    masterPane.setBottom(buttonGridPane); 

    upBtn.setOnAction(e -> name.setY(name.getY() - 10)); 
    downBtn.setOnAction(e -> name.setY(name.getY() + 10)); 

    return masterPane; 
    } 

    protected StackPane setPane(){ 

    BorderPane newMasterPane = new BorderPane(getPane()); 
    GridPane gridPane = new GridPane(); 
    gridPane.setMinSize(1250, 500); 
    gridPane.setMaxSize(1250, 500); 
    StackPane root = new StackPane(gridPane); 
    NumberBinding maxScale = Bindings.min(root.widthProperty().divide(1250), root.heightProperty().divide(500)); 
    gridPane.scaleXProperty().bind(maxScale); 
    gridPane.scaleYProperty().bind(maxScale); 
    gridPane.add(newMasterPane,0,0); 

    return root; 
    } 

    @Override 
    public void start(Stage primoStage) { 

    Scene scene = new Scene(setPane(), 1250, 500); 
    primoStage.setTitle("Assignment #7"); 
    primoStage.setScene(scene); 
    primoStage.show(); 

    } 

    public static void main(String[] args) { 
    launch(args); 
    } 
} 

class CheckBox extends test { 
    @Override 
    protected BorderPane getPane() { 
    BorderPane pane = super.getPane(); 

    Font fontBoldItalic = Font.font("Comic Sans MS", 
     FontWeight.BOLD, FontPosture.ITALIC, 20); 
    Font fontBold = Font.font("Comic Sans MS", 
     FontWeight.BOLD, FontPosture.REGULAR, 20); 
    Font fontItalic = Font.font("Comic Sans MS", 
     FontWeight.NORMAL, FontPosture.ITALIC, 20); 
    Font fontNormal = Font.font("Comic Sans MS", 
     FontWeight.NORMAL, FontPosture.REGULAR, 20); 

     name.setFont(fontNormal); 

     GridPane fontGridPane = new GridPane(); 
     fontGridPane.setPadding(new Insets(10)); 
     fontGridPane.setHgap(5); 
     fontGridPane.setVgap(5); 
     fontGridPane.setStyle("-fx-border-color: cyan"); 

     // VBox checkPane = new VBox(20); 
     // checkPane.setPadding(new Insets(5, 5, 5, 5)); 
     // checkPane.setStyle("-fx-border-color: cyan"); 
     CheckBox chkBold = new CheckBox("Bold"); 
     CheckBox chkItalic = new CheckBox("Italic"); 
     // checkPane.getChildren().addAll(chkBold, chkItalic); 
     // pane.setLeft(checkPane); 
     fontGridPane.add(chkBold,0,0); 
     fontGridPane.add(chkItalic,0,1); 
     fontGridPane.setHalignment(chkBold, HPos.CENTER); 
     fontGridPane.setValignment(chkBold, VPos.CENTER); 
     fontGridPane.setHalignment(chkItalic, HPos.CENTER); 
     fontGridPane.setValignment(chkItalic, VPos.CENTER); 

     EventHandler<ActionEvent> handler = e -> { 
     if (chkBold.isSelected() && chkItalic.isSelected()) { 
      text.setFont(fontBoldItalic); // Both check boxes checked 
     } 
     else if (chkBold.isSelected()) { 
      text.setFont(fontBold); // The Bold check box checked 
     } 
     else if (chkItalic.isSelected()) { 
      text.setFont(fontItalic); // The Italic check box checked 
     } 
     else { 
      text.setFont(fontNormal); // Both check boxes unchecked 
     } 
     }; 

     chkBold.setOnAction(handler); 
     chkItalic.setOnAction(handler); 

     return pane; 
    } 
} 
+0

私たちが探しているはずの場所 - 投稿する理由は何ですかsoooooooooooo多くのコード? –

+1

'class CheckBox extends test'と' public class test extends Application'です。チェックボックスとJavaFXのCheckBoxは同じチェックボックスではありません。 – ifly6

答えて

1

、ないjavafx.scene.control.CheckBox

javafx.scene.control.CheckBoxは、完全修飾名を使用しても参照できます。

javafx.scene.control.CheckBox chkBold = new javafx.scene.control.CheckBox("Bold"); 

が、多分あなたは、この名前はとにかく誤解を招くので、(それはCheckBox ES、ないCheckBoxを使用して、アプリケーションの)、あなたのクラスCheckBoxを命名再考すべきです。

関連する問題