2016-10-19 9 views
-1

私はjavafxでウィンドウを作成しようとしています。入力をウィンドウに塗りつぶし

ここでは、ウィンドウがあると、JavaFxで行を追加しようとしています。

public void start(Stage stage) { 
    stage.setTitle("Java chat client"); 
    tf = new TextFlow(); 
    Text t; 
    t=new Text("tetd\n"); 
    t.setFill(Color.GREEN); 
    tf.getChildren().addAll(t); 
    t=new Text("blblblb"); 
    tf.getChildren().add(t); 
    group = new Group(tf); 
    Scene scene = new Scene(group, 650, 150, Color.WHITE); 
    stage.setScene(scene); 
    stage.show(); 
} 

、これは私が新しいテキストを追加するために私のメインでやろうものです:子供:私はこれをしようとすると

public static void main(String[] args) { 
    Application.launch(Client.class); 
    Text t; 
    t=new Text("tetd\n"); 
    t.setFill(Color.RED); 
    tf.getChildren().add(t); 
    group.getChildren().add(tf); 
} 

私は

java.lang.IllegalArgumentExceptionがを取得:子を重複して追加:親=グループ@ 1706bae [スタイルクラス=ルート]

どのように私はテキストを追加することができますか?ヘルプ

+0

スイングと同じように、HTML対応コンポーネントを使用することもできます。 FXではこれを 'WebView'と呼びます –

+0

@TimothyTruckleが示唆するように、テキストをHTMLフォーマットして' WebView'を使用するか、['TextFlow']を使用することができます(http://docs.oracle.com/javase/ 8/javafx/api/javafx/scene/text/TextFlow.html)、その中に 'Text'要素を置きます。それぞれの 'Text'は、色を変更するために異なる' fill'を設定することができます。 –

+0

新しいインクラインを追加するにはシーンをどのように更新するのですか? @James_D – The8Monkey

答えて

-1

このついて行くのに最適な方法とも偉大な学習機会のための

おかげで、このためにCSSを使用することです。以下のコードは、TextAreaのテキストの色を変更する例です。

.text-area{ 
    -fx-text-fill: green; 
} 

次に、このスタイルシートをノード(この場合はテキスト領域)に追加することができます。

@FXML TextArea myTextArea; 

@Override 
public void initialize(){ 
    myTextArea.getStyleSheets.add("Path to your style sheet (i.e bin/textColor.css")); 
} 

あなたが既にjavaFXと初期化可能なインターフェイスに精通している場合、これはあなたに理にかなっています。それ以外の場合は、これらの機能について学ぶことを強くお勧めします。行だけでは、下線を有効にしてテキストを空白の束にすることができます。お役に立てれば。

+0

しかし、私は緑色のテキストしか持たないので、何とか複数の色をテキストエリアに追加できますか? – The8Monkey

+0

はい、可能です。 – paul

+0

どのように?どのようなクラスを使用する必要がありますか?そして、あなたはミルに恥ずかしがり屋を与えることができますか?ありがとうございました。 – The8Monkey

関連する問題