2017-02-23 3 views
1

nameInputラベルとpassInputラベルが太字になるように問題が発生しています。私のプログラムは-fx-text-fill: #FFFFFF;を実行することができますが、それは動作しますが、私が試してみると、アプリケーションが実行されると、私のラベルがうまく動作しないか、または太字になります。-fx-font-weight: bold;ここでJavafx CSS一部のプロパティが動作しない

は私のラベルやボタンを含む私のコードです:

package appGUI; 

import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.Event; 
import javafx.event.EventHandler; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 
import javafx.scene.control.PasswordField; 
import javafx.scene.control.TextField; 
import javafx.stage.Stage; 
import javafx.scene.layout.GridPane; 

public class Login extends Application { 

    Stage window; 
    Button loginButton; 
    String user = "test"; 
    String pw = "test"; 

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

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     window = primaryStage; 
     window.setTitle("Secret"); 

     GridPane grid = new GridPane(); 
     grid.setPadding(new Insets(10,10,10,10)); 
     grid.setVgap(8); 
     grid.setHgap(10); 

     // name label 
     Label nameLabel = new Label("Enter your name:"); 
     GridPane.setConstraints(nameLabel, 0, 0); 

     // name input 
     TextField nameInput = new TextField(); 
     nameInput.setPromptText("name"); 
     GridPane.setConstraints(nameInput, 1, 0); 

     // password label 
     Label passLabel = new Label("Enter the password:"); 
     GridPane.setConstraints(passLabel, 0, 1); 

     // password input 
     PasswordField passInput = new PasswordField(); 
     passInput.setPromptText("password"); 
     GridPane.setConstraints(passInput, 1, 1); 

     // login button 
     loginButton = new Button("Enter"); 
     GridPane.setConstraints(loginButton, 1, 2); 
     loginButton.setOnAction(e -> { 
      if(nameInput.getText().equals(user) && passInput.getText().equals(pw)) { 
       System.out.println("THIS WORKS. YOU FINALLY SOLVED IT!!!!"); 
      } else { 
       AlertBox.display("Error: Access Denied", "Only a special person can access this app"); 
      } 

     }); 

     grid.getChildren().addAll(nameLabel, nameInput, passLabel, passInput, loginButton); 

     Scene scene = new Scene(grid, 350, 200); 
     scene.getStylesheets().add("/appGUI/custom.css"); 

     window.setScene(scene); 
     window.show(); 

    } 
} 

そして、ここでは正常に動作し、私は太字のテキスト以外の書いたすべてを行います「のcustom.css」というタイトルの.cssファイルであります

.root { 
    -fx-background-color: linear-gradient(#707070, #BABABA); 
} 

.label { 
    -fx-text-fill: #FFFFFF; 
    -fx-font-weight: bold; 
} 

.button { 
    -fx-background-color: linear-gradient(#00F5FF, #FFA07A); 
    -fx-background-radius:10; 
} 

私はほとんどすべてを試しましたが、修正するのは本当に簡単な問題のようなものには答えられないようです。私のラベルは大胆なものではありませんが、彼らは#FFFFFFと記入します。私はただ一つのプロパティがなぜ機能するのか知りたいのですが、もう一つはそうではありません!

+0

をそれは単に動作しますが、何も間違っていません。 「より大きい」と試してください。 – DVarga

+0

は、FXForms2生成フォームを使用して同じ問題を抱えています。一部のプロパティは機能しますが、一部のプロパティは機能しません。私の場合は、サイズとイタリックは大丈夫ですが、テキスト塗りつぶしの色は変わりません... – user978548

答えて

0

コードは問題なく動作します。そのように動作しなくても、太字のには、代わりにJavaコードを使用したラベルを使用できます。

nameInput.setFont(Font.font("Serif", FontWeight.BOLD, 20)); 
passInput.setFont(Font.font("Serif", FontWeight.BOLD, 20)); 
0

いくつかの奇妙な理由で、デフォルトフォントが必ずしもすべての機能をサポートするとは限りません。

試してみてください。

.label { 
    -fx-font-family: "Helvetica"; 
    -fx-font-weight: bold; 
} 

あなたが広い、この変更アプリケーションを作成したい場合は、シーンに追加します。

.root { 
    -fx-font-family: "Helvetica"; 
} 

scene.getStylesheets().add("pathTo/root.css"); 
関連する問題