JavaFX, как сделать текст жирным шрифтом / подчеркиванием и добавить его в отдельную рамку / квадрат? - PullRequest
0 голосов
/ 07 декабря 2018

Как в моем коде сделать текст жирным и подчеркнутым и добавить его в отдельную рамку / квадрат?Специально для «Вы в настоящее время зарегистрированы для» и «Текущие кредитные часы».Я попытался добавить шрифт веса и подчеркивания, но это не сработало и дал мне ошибку, которая не имеет особого смысла.Если возможно, выделите то, что вы добавили, и, как всегда, заранее благодарим.

Это основной класс:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.layout.Region;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.layout.GridPane;
import javafx.geometry.Insets;
import javafx.scene.control.Label;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.layout.RowConstraints;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;


public class JavaFXRegister extends Application {

    GridPane grid = new GridPane();
    Label selectPromptLabel = new Label("Please select a course for which you 
    want to register");
    ComboBox<Course> coursesComboBox = new ComboBox<>();   
    Label confirmPromptLabel = new Label("");
    Label registeredCoursesPromptLabel = new Label("You are currently registered for");
    Label creditHourPromptLabel = new Label("Current total Credit Hours");            
    Label registeredCoursesLabel = new Label("");
    Label creditHoursLabel = new Label("0");

    Course choice;
    int totalCredit = 0;


    @Override
    public void start(Stage primaryStage) {

    /*
        grid.setHgap(0);
        grid.setVgap(500);

        grid.setGridLinesVisible(true);
    */
        RowConstraints row0 = new RowConstraints();
        RowConstraints row1 = new RowConstraints();
        RowConstraints row2 = new RowConstraints();
        RowConstraints row3 = new RowConstraints();
        RowConstraints row4 = new RowConstraints();


        row0.setPercentHeight(5);
        row1.setPercentHeight(50);
        row2.setPercentHeight(10);
        row3.setPercentHeight(5);
        row4.setPercentHeight(15);

        grid.getRowConstraints().addAll(row0, row1,row2, row3, row4);

        grid.setAlignment(Pos.CENTER);

        grid.setHgap(5);
        grid.setVgap(5);

        //Ron Added
        grid.setPadding(new Insets(10, 10, 10, 10));  

        grid.add(selectPromptLabel, 0, 0);
        grid.setHalignment(selectPromptLabel, HPos.LEFT);

        //Ron Added
        selectPromptLabel.setMinWidth(Region.USE_PREF_SIZE);


        coursesComboBox.getItems().addAll(
                new Course("IT4782"), 
                new Course("IT4784"),
                new Course("IT4786"),
                new Course("IT4789"),
                new Course("IT2230"),
                new Course("IT3345"),
                new Course("IT3349") );
        coursesComboBox.setMaxWidth(Double.MAX_VALUE);

        grid.add(coursesComboBox, 0, 1);
        grid.setValignment(coursesComboBox, VPos.TOP);

        confirmPromptLabel.setTextFill(Color.RED);

        grid.add(confirmPromptLabel, 0, 2);  
        grid.setHalignment(confirmPromptLabel, HPos.LEFT);
        grid.setValignment(confirmPromptLabel, VPos.TOP);

        grid.add(registeredCoursesPromptLabel, 0, 3);  
        grid.setHalignment(registeredCoursesPromptLabel, HPos.LEFT);
        grid.setValignment(registeredCoursesPromptLabel, VPos.TOP);

        grid.add(creditHourPromptLabel, 1, 3);  
        grid.setHalignment(creditHourPromptLabel, HPos.LEFT);   
        grid.setValignment(creditHourPromptLabel, VPos.TOP);

        grid.add(registeredCoursesLabel, 0, 4);
        grid.setHalignment(registeredCoursesLabel, HPos.LEFT);   
        grid.setValignment(registeredCoursesLabel, VPos.TOP);
        registeredCoursesLabel.setStyle("-fx-background-color: #fff600;");

        grid.add(creditHoursLabel, 1, 4); 
        grid.setHalignment(creditHoursLabel, HPos.LEFT);   
        grid.setValignment(creditHoursLabel, VPos.TOP);
        creditHoursLabel.setStyle("-fx-background-color: #fff600;");

        Scene scene = new Scene(grid, 500, 500, Color.RED);

        primaryStage.setTitle("JavaFX Register for Course");
        primaryStage.setScene(scene);
        primaryStage.show();


        coursesComboBox.setOnAction(e -> {

            //Ron Added 
            coursesComboBox.getValue();
            choice = coursesComboBox.getValue();

            //Ron added
            String setCode = choice.toString();
            // Update display of registered courses 
            if(choice.getIsRegisteredFor()){
                confirmPromptLabel.setText("**Invalid** \n" + "You are already registered for " + setCode);
                return;
            }
            // Update display of the total credit hours 
            if(totalCredit >= 9){
                confirmPromptLabel.setText("**Invalid** \n" + "You can't register for anymore courses.");
                return;
            }
            //display message
            confirmPromptLabel.setText("You have registered for " + setCode );
            registeredCoursesLabel.setText(registeredCoursesLabel.getText() + 
      setCode + "\n");
            totalCredit += 3;
            creditHoursLabel.setText(totalCredit + "");
            choice.setIsRegisteredFor(true);
        });
    }


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

}

Курс класса

package javafxregisterforcourse;

public class Course {

    private String code = "";
    private boolean isRegisterdFor = false;

    public Course(String code){
        this.code = code;
    }

    public void setCode(String code){
        this.code = code;
    }

    public String getCode() {
        return this.code;
    }

    public void setIsRegisteredFor(boolean trueOrFalse){
        this.isRegisterdFor = trueOrFalse;
    }

    public boolean getIsRegisteredFor() {
        return this.isRegisterdFor;
    } 

    @Override
    public String toString(){
        return this.getCode();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...