【发布时间】:2016-03-08 13:27:37
【问题描述】:
我是 JavaFX 的新手,我正在开发一个 JavafX 项目,我想在其中将数据从网络加载到 GridPane。我试图弄清楚如何在 UI 中添加从网络接收到的数据。
我已经创建了一个网格窗格,并且只需要在窗格中加载名称、图像。
我查看了一些资源,但鉴于我对 JavaFX 的了解有限,不知道要修改什么以在窗格中添加数据。
我的代码:
public class AccountController {
fetchCanvasImagesFromServer.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent event) {
imageObservableList = FXCollections.observableList(fetchCanvasImagesFromServer.getValue());
for(RestImage image : imageObservableList){
if(!(image == null)) {
if (!(image.getCanvasImage() == null)) {
try {
InputStream in = new ByteArrayInputStream(image.getCanvasImage());
BufferedImage bImageFromConvert = ImageIO.read(in);
Image fxImage = SwingFXUtils.toFXImage(bImageFromConvert,null);
if(!(fxImage == null)){
System.out.println("Fx image is not null");
}
}catch (Exception ignored){}
}
}
}
}
});
}
这里有来自 Canvas 的数据。现在,这段代码被 LoginController 调用,并且只有在登录后才能检索到这些数据。
public class LoginController {
@FXML
private TextField user;
@FXML private TextField password;
@FXML private Button loginButton;
public void initManager(final LoginManager loginManager) {
loginButton.setOnAction(event -> {
String sessionID1 = authorize();
if (sessionID1 != null) {
loginManager.authenticated();
}
});
}
}
最后,上面的认证方法调用网络方法来检索数据。
网格窗格:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.*?>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity"
prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="Controller.AccountController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
</GridPane>
我的问题是,如何在canvas.fxml 中加载 RestImage 对象数据。请告诉我。
【问题讨论】:
标签: java javafx resttemplate