0

ボタンをクリックして Scollpane に複数の画像を追加したいのですが、以下のコードを試してみましたが、画像が表示されません。

@FXML private void OnClick(ActionEvent ae)
{
  getGalleryView();
}
public void getGalleryView()
{
  ScrolPane sp=new ScroPane();
Hbox hb=new Hbox();
Image [] images=new Image[5];
ImageView []pics=new ImageView[5];
final String [] imageNames = new String [] {"fw1.jpg", "fw2.jpg",
    "fw3.jpg", "fw4.jpg", "fw5.jpg"};

for (int i = 0; i < 5; i++) {
        images[i] = new Image(getClass().getResourceAsStream(imageNames[i]));
        pics[i] = new ImageView(images[i]);
        pics[i].setFitWidth(100);
        pics[i].setPreserveRatio(true);
        hb.getChildren().add(pics[i]);
        sp.setContent(hb);

    }
} 
4

2 に答える 2

0

スクロールペインをシーンに追加する必要があります。

@FXML private void OnClick(ActionEvent ae)
{
  getGalleryView(ae);
}
public void getGalleryView(ActionEvent ae)
{
  ScrolPane sp=new ScroPane();
  Hbox hb=new Hbox();
  Image [] images=new Image[5];
  ImageView []pics=new ImageView[5];
  final String [] imageNames = new String [] {"fw1.jpg", "fw2.jpg",
    "fw3.jpg", "fw4.jpg", "fw5.jpg"};

  for (int i = 0; i < 5; i++) {
        images[i] = new Image(getClass().getResourceAsStream(imageNames[i]));
        pics[i] = new ImageView(images[i]);
        pics[i].setFitWidth(100);
        pics[i].setPreserveRatio(true);
        hb.getChildren().add(pics[i]);
        sp.setContent(hb);

    }

    Scene scene = ((Node) ae.getSource()).getScene();
    ((Pane) scene.getRoot()).getChildren().add(sp);
} 

ここでは、ルートノードがペインまたはそのサブクラスの1つであると想定しました。

于 2013-01-04T18:49:08.720 に答える