CitroenDsVier
Lt. Commander
- Registriert
- Dez. 2013
- Beiträge
- 1.896
Hallo zusammen,
ich habe folgendes Problem: Die FXML-Anbindung an den Controller funktioniert soweit (IntelliJ zeigt kleine Icons und markiert Quellcode entsprechend). Ich kann aber keinem Element eine Eigenschaft setzen oder korregt abfragen.
Erstmal der Code zum besseren Verständnis:
Controller.java
gui.fxml
Konkret geht es jetzt um die Eigenschaft "closable" der Tabs. Diese kann ich im FXML problemlos setzen, funktioniert auch bei Ausführung des Programms. Allerdings kann ich diesen Zustand der Tab-Objekte vom Controller aus nicht einsehen, da sind alle Tabs immer (unabhängig von dem, was in der FXML steht) closable=true.
Setze ich die Closable-Eigenschaft im Controller (mit meiner Zeile "tClients.setClosable(false);"), stimmt zwar meine System out println-Abfrage nach der Eigenschaft mit dem Gesetzten überein, dafür sind bei Ausführung des Programms beide Tabs trotz im Controller auf "false" gesetzter closable-Eigenschaft trotzdem closable.
Ebenso war das Verhalten beim Titel der Tabs: Im Controller erstelle ich die Tabs, übergebe dem Konstruktor den Titel, der aber nicht angezeigt wird. Erst das Setzen des "text" Feldes in der FXML hat den Titel bei Ausführung des Programms auch in die Tabs gebracht.
IntelliJ suggeriert aber wie gesagt eine "Verbindung" zwischen Controller und FXML über die kleinen Icons am Rand (siehe Screenshot), außerdem gibt es in der FXML keine "not bound" oder andere Fehler.
Wo liegt hier das Problem?
ich habe folgendes Problem: Die FXML-Anbindung an den Controller funktioniert soweit (IntelliJ zeigt kleine Icons und markiert Quellcode entsprechend). Ich kann aber keinem Element eine Eigenschaft setzen oder korregt abfragen.
Erstmal der Code zum besseren Verständnis:
Controller.java
Code:
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import java.net.URL;
import java.util.ResourceBundle;
public class Controller implements Initializable {
public TabPane tabPane;
public Tab tClients;
public Tab tDocs;
@Override
public void initialize(URL location, ResourceBundle resources) {
tabPane = new TabPane();
tClients = new Tab("Kunden");
tDocs = new Tab("Ärzte");
tClients.setClosable(false);
tabPane.getTabs().add(tClients);
tabPane.getTabs().add(tDocs);
System.out.println("initialized.");
System.out.println(tClients.isClosable() + " - " + tDocs.isClosable());
}
}
gui.fxml
Code:
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.control.Tab?>
<TabPane fx:controller="Controller" fx:id="tabPane" xmlns:fx="http://javafx.com/fxml">
<Tab fx:id="tClients" text="Kunden">
</Tab>
<Tab fx:id="tDocs" text="Ärzte" closable="false">
</Tab>
</TabPane>
Konkret geht es jetzt um die Eigenschaft "closable" der Tabs. Diese kann ich im FXML problemlos setzen, funktioniert auch bei Ausführung des Programms. Allerdings kann ich diesen Zustand der Tab-Objekte vom Controller aus nicht einsehen, da sind alle Tabs immer (unabhängig von dem, was in der FXML steht) closable=true.
Setze ich die Closable-Eigenschaft im Controller (mit meiner Zeile "tClients.setClosable(false);"), stimmt zwar meine System out println-Abfrage nach der Eigenschaft mit dem Gesetzten überein, dafür sind bei Ausführung des Programms beide Tabs trotz im Controller auf "false" gesetzter closable-Eigenschaft trotzdem closable.
Ebenso war das Verhalten beim Titel der Tabs: Im Controller erstelle ich die Tabs, übergebe dem Konstruktor den Titel, der aber nicht angezeigt wird. Erst das Setzen des "text" Feldes in der FXML hat den Titel bei Ausführung des Programms auch in die Tabs gebracht.
IntelliJ suggeriert aber wie gesagt eine "Verbindung" zwischen Controller und FXML über die kleinen Icons am Rand (siehe Screenshot), außerdem gibt es in der FXML keine "not bound" oder andere Fehler.
Wo liegt hier das Problem?