gpt4 book ai didi

replace - JAVAFX 2.0 如何动态更改 scrollPane 中的内容?

转载 作者:行者123 更新时间:2023-12-01 05:02:57 25 4
gpt4 key购买 nike

我在 scrollPane 中制作播放列表,但我想在加载新播放列表时更改 scrollPane 中的内容。 setContent() 只是添加内容。如何删除滚动 Pane 中的旧内容并插入新文本,即。有没有办法执行“scrollpane.removeContent()”?

最佳答案

乌鲁克是对的。

scrollPane.setContent(node)已经完全按照您的要求进行了(替换现有内容)并且不需要 removeContent 方法,因为 setContent(null) 将删除滚动 Pane 中的任何内容。


这是一个示例应用程序来演示这一点:

import javafx.application.Application;
import javafx.beans.property.*;
import javafx.event.*;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.image.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;

public class ScrollPaneReplace extends Application {
public static void main(String[] args) { launch(args); }

String[] imageLocs = {
"http://uhallnyu.files.wordpress.com/2011/11/green-apple.jpg",
"http://i.i.com.com/cnwk.1d/i/tim/2011/03/10/orange_iStock_000001331357X_540x405.jpg",
"http://smoothiejuicerecipes.com/pear.jpg"
};
ImageView[] images = new ImageView[imageLocs.length];

@Override public void init() {
for (int i = 0; i < imageLocs.length; i++) {
images[i] = new ImageView(new Image(imageLocs[i], 200, 0, true, true));
}
}

@Override public void start(Stage stage) {
stage.setTitle("Healthy Choices");
stage.getIcons().add(new Image("http://files.softicons.com/download/application-icons/pixelophilia-icons-by-omercetin/png/32/apple-green.png"));

final ScrollPane scroll = new ScrollPane();
scroll.setPrefSize(100, 100);

final IntegerProperty curImageIdx = new SimpleIntegerProperty(0);
scroll.setContent(images[curImageIdx.get()]);

Button next = new Button("Next Image");
next.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent t) {
curImageIdx.set((curImageIdx.get() + 1) % 3);
scroll.setContent(images[curImageIdx.get()]);
}
});

Button remove = new Button("Remove Image");
remove.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent t) {
scroll.setContent(null);
}
});

VBox controls = new VBox(10);
controls.getChildren().setAll(next, remove);

HBox layout = new HBox(10);
layout.getChildren().setAll(controls, scroll);
layout.setStyle("-fx-background-color: cornsilk; -fx-padding: 15;");
HBox.setHgrow(scroll, Priority.ALWAYS);

stage.setScene(new Scene(layout));
stage.show();

scroll.setHvalue(0.25); scroll.setVvalue(0.25);
}
}

不同 ScrollPane 内容设置的示例图像:

applechoice orangechoice nochoice

关于replace - JAVAFX 2.0 如何动态更改 scrollPane 中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13477653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com