0
以下は、私が一緒に画像とキャプションテキストを表示するために使用コードです:画像:JavaFXの
try
{
Scanner scanner = new Scanner(new File("data.txt"));
String text = scanner.useDelimiter("ENDOFFILE").next();
scanner.close(); // Put this call in a finally block
System.out.println(text);
String[] data = text.split("\n");
for(int i=0;i<data.length;i++)
{
if(i%2==0)
{
System.out.println("This is "+data[i]);
Image img = new Image(new File(data[i]).toURI().toString(), 100, 0, false, false);
ImageView selectedImage = new ImageView();
selectedImage.setImage(img);
v.getChildren().addAll(selectedImage);
}
else
{
Text t = new Text(data[i]);
t.setFont(Font.font("Tahoma", FontWeight.NORMAL, 14));
v.getChildren().add(t);
}
}
}
catch(Exception E)
{
E.printStackTrace();
}
root2.getChildren().add(v);
Scene scene = new Scene(root2, 1000, 1000);
stage.setScene(scene);
stage.show();
}
data[i]
画像については、プログラムと同じディレクトリ内に存在するUdiagram.jpg
です。例外は発生しませんが、イメージは表示されません。空白で表示され、テキストはText goes here
と表示されます。次のように
ファイルdata.txt
は次のとおりです。
UDiagram.jpg
Hit and Run
ENDOFFILE
画像だけでテキストを表示しない理由何ができますか?
'new File(...)は、ほとんどまたはまったく制御できない*作業ディレクトリ*に関連するファイルを解決します。 (ほとんどのIDEは作業ディレクトリをプロジェクトディレクトリにしますが、それは設定可能ですが、アプリケーションがデプロイされ実行されたときには明らかに異なることがあります)。これらのファイルがアプリケーションの一部である場合(つまり、jarファイルにバンドルされる場合)、クラスローダーを介してリソースとしてロードする必要があります。 (あなたの 'data.txt'ファイルについても同じことが言えます)あなたが作成しようとしているものを見るためにあなたが作成したURLをいつも表示することができます。 –