Danke erst mal für das Code Snippet. Bin die ganze Zeit schon am probieren, aber ich bekomm es nicht hin. Hab zwar keine Fehlermeldung, aber das Image wird nicht geändert. Vielleicht siehst du einen Fehler in meinem Code?
Mein Custom Control:
[CODE]
public class StatusBar extends GridPane {
//public static final Image imageBenutzerStatusBar = new Image("/icons/user.png");
@FXML
private GridPane ctrlStatusBar;
@FXML
private ImageView imgView;
@FXML
private Label lblStatusUser;
@FXML
private Label lblStatusText;
@FXML
private Label lblStatusServer;
@FXML
private Label lblStatusVersion;
@FXML
private Line lineSeparator;
private ObjectProperty<Image> icon;
public StatusBar() {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/StatusBar.fxml"));
loader.setRoot(this);
loader.setController(this);
try {
loader.load();
Image imageBenutzerStatusBar = new Image(getClass().getResourceAsStream("/icons/user.png"));
if (imageBenutzerStatusBar != null) {
imgView.setImage(imageBenutzerStatusBar);
}
lineSeparator.endXProperty().bind(ctrlStatusBar.widthProperty());
}
catch (IOException ioe) {
throw new RuntimeException(ioe);
}
}
public GridPane getCtrlStatusBar() {
return ctrlStatusBar;
}
public ImageView getImgView() {
return imgView;
}
public Label getLblStatusUser() {
return lblStatusUser;
}
public Label getLblStatusText() {
return lblStatusText;
}
public Label getLblStatusServer() {
return lblStatusServer;
}
public Label getLblStatusVersion() {
return lblStatusVersion;
}
public Line getLineSeparator() {
return lineSeparator;
}
public ObjectProperty<Image> iconProperty() {
if (icon == null) {
icon = new ObjectPropertyBase<Image>() {
@Override
public Object getBean() {
return StatusBar.this;
}
@Override
public String getName() {
return "icon";
}
};
}
return icon;
}
public void setIcon(Image icon) {
iconProperty().setValue(icon);
}
public Image getIcon() {
return icon == null ? null : icon.getValue();
}
}
[/CODE]
FXML-Ausschnitt:
[CODE]
<bottom>
<StatusBar fx:id="statusBar" BorderPane.alignment="CENTER">
<icon>
<Image url="@../icons/16/dialog-error.png" />
</icon>
</StatusBar>
</bottom>
[/CODE]
Ich glaube, das Property weiß nicht, daß es das Image der ImageView ändern soll. Aber ich blick das grad nicht, wie ich das mitteilen kann. Du benutzt ja Node und in eine Node kann man ja alles einfügen. Ich würd gern direkt Image verwenden, da ich ja direkt das Image der ImageView setzen will. Oder geht das so nicht?