0

私は 1 週間ほどチャットをしようとしてきましたが、目標は、チャットが人物と背景の部屋を含むアニメーション チャットになることです。これまでのところ、バックグラウンドで gui を作成しましたが、誰かが接続した場合に自分のキャラクターを追加したいところまで来ました。GUI は JavaFx Scenebuilder で作成され、スタイルシートは CSS で作成されます。

この背後にある考え方は、誰かがサーバーに接続するたびに、チャット担当者が与えられ、画面上にランダムに立つ場所が与えられるということです (後で動きを実装します:))が、私の問題は、ラベルを作成しようとするときです画像が添付されていると、GUIは画像を表示していないようです(下の画像の例に示すように)私のコードは次のようになります:

        Label test = new Label();
    test.setStyle("build.css");
    test.setText("Here i am");
    test.setVisible(true);

    Image img = new Image(getClass().getResourceAsStream("Figur.png"));
    Label test2 = new Label("", new ImageView(img));
    test2.setLayoutX(50);
    test2.setLayoutY(30);
    test2.setVisible(true);

上記のコードはラベルの作成を 2 回試みたものであり、Gui は実際にはラベルを表示しません。私の現在の考えでは、ラベルは GUI の背景画像の後ろに隠れているということです。これは、CSS (次のコードを使用) を介して単純に画像を追加したためです。

#AnchorPane{-fx-background-image:url('Background.JPG');}

誰かが私を助けて、ラベルを画像内に表示して見えるようにする方法を教えてもらえますか? :)

前もって感謝します!

私のプログラムの写真

4

1 に答える 1

1

あなたの最初の試みはラインで間違っています

test.setStyle("build.css");

次のように CSS スタイルシートをロードします。

scene.getStylesheets().add(getClass().getResource("build.css").toExternalForm());

ロードされたcssで定義されたカスタムIDセレクターをテストラベルに適用します

test.setId("myTestId");

2 回目の試行は正しいです。これらのラベルをシーンに追加する方法を示します。
更新:ラベルを動的に追加するには、次の手順を実行します。
FXML ファイルのコントローラー クラスで、アンカー ペインにリンクし、ラベルを追加します。

@FXML private AnchorPane anchorPane; // where fx:id = anchorPane
anchorPane.getChildren().addAll(test, test2);
于 2012-10-08T07:43:52.993 に答える