Im在scrollPane中製作播放列表,但我想在加載新播放列表時更改scrollPane中的內容。 setContent()只是添加內容。如何刪除滾動窗格中的舊內容並插入我的新文本,即。有沒有辦法做一個「scrollpane.removeContent()」?JAVAFX 2.0如何動態更改scrollPane中的內容?
2
A
回答
7
烏魯克是對的。
scrollPane.setContent(node)已經完全按照您的要求進行了操作(替換現有內容),並且不需要removeContent方法,因爲setContent(null)將刪除滾動窗格中的所有內容。
這裏是一個示例應用來證明這一點:
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內容設置:
+0
謝謝!這非常有幫助。 –
相關問題
- 1. JavaFX 2.1更改ScrollPane滾動條大小
- 2. ScrollPane的JavaFX 2.2內容過高?
- 3. JavaFX 2.0 - 如何動態更改LineChart的圖例顏色?
- 4. 如何動態更改JLabel的內容
- 5. 如何更改動態HTML的內容
- 6. 如何增加JavaFX中ScrollPane的滾動?
- 7. 動態更改asp.net中span元素的內容mvc 2.0
- 8. 如何動態更改div內容?
- 9. 如何動態更改td內容?
- 10. JavaFX ScrollPane以編程方式移動視口 - 居中內容
- 11. 動態更改ListView內容
- 12. 動態更改URL內容
- 13. 更改內容動態
- 14. qtip2動態更改內容
- 15. 動態更改ToolTipDialog內容
- 16. 如何在輸入更改時動態更改div的內容?
- 17. 如何動態更改JavaFX 2.0折線圖中的線條樣式?
- 18. ScrollPane JavaFX讓它滾動更多?
- 19. 中心ScrollPane中的內容與fitToWidth = FALSE使用JavaFX
- 20. JavaFX 2.2 - 如何適應在scrollPane內縮放後的滾動?
- 21. 在css中動態更改內容
- 22. 拖動後ScrollPane內容變得模糊
- 23. ScrollPane不適用於as3中的動態內容
- 24. 如何動態更改A-FRAME中的文字內容?
- 25. 如何動態更改CardView中的內容
- 26. 如何滾動以使ScrollPane的內容中的節點可見?
- 27. AS3在Scrollpane裏滾動動態創建的內容
- 28. 動態更改塊引用的內容
- 29. 動態更改gridview的內容
- 30. 動態更改TabHost的標籤內容
其名稱所暗示的setContent()設置內容不會添加到它。再次檢查你的代碼,你以某種方式再次重新設置舊內容。要刪除內容,只需調用setContent(null)或setContent(new Pane())v.s .. –
非常感謝!我很確定這是setcontent()弄亂了代碼,我忘了重置舊的內容變量。 –