JavaFX SplitPane Anwendung - Controller Probleme

gottfried

Mitglied
Hallo
ich bin dabei mit Netbeans 8.1 und SceneBuilder 8.5.0 unter Linux eine erste JavaFX Anwendung zu erstellen.
Grundlage ist eine SplitPane mit einer VBox controlPane und einer VBox dataPane. Startcode:
Java:
public class SampleFX extends Application {
    @Override
    public void start(Stage primaryStage) throws IOException {
        SplitPane mainPane = (SplitPane) FXMLLoader.load(getClass().getResource("/samplefx/view/main.fxml"));
        Scene scene = new Scene(mainPane);
        primaryStage.setTitle("JavaFX DLDB Application");
        primaryStage.setScene(scene);
        primaryStage.setMaximized(true);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }


Mit den Buttons in der schmalen controlPane links werden fxml-Files in den Arbeitsbereich, die dataPane geladen.
Das geschieht mit folgendem Code:
Java:
public void setDataPane(Node node) {
        dataPane.getChildren().setAll(node);
    }

public void openIntern(ActionEvent event) throws IOException {
        setDataPane("/samplefx/view/FXML1.fxml");
    }


In FXML1 werden Kunden geladen, ausgewählt und dann soll ein in der Tabelle enthaltener Vorgang in FXML2 geöffnet
werden. Dazu werden zunächst KNR und VNR in der Datenbank zwischengespeichert:
Java:
public void saveInDB() {
        TablePosition pos = TableVorgang.getSelectionModel().getSelectedCells().get(0);
        int row = pos.getRow();
        String vnr = TableVorgang.getColumns().get(0).getCellObservableValue(row).getValue().toString();
        String sknr = res.getText();
        Connection conn = null;
        try {
            Class.forName("org.postgresql.Driver");
            conn = DriverManager.getConnection(jhpn, uname, pw);
            String sSQL = "UPDATE print SET knr = " + "'" + sknr + "'," + "vnr = " + "'" + vnr + "'" + "WHERE print.pid = 1 ";
            Statement st = conn.createStatement();
            st.execute(sSQL);

        } catch (ClassNotFoundException | SQLException e) {
            JOptionPane.showMessageDialog(null, "Fehler in SaveInDB(): " + e); //muss noch durch Alert ersetzt werden
        }


Das funktioniert. Nun muss ich einen Weg finden, um die Methode im FXML2 Controller aufzurufen, die die Daten unter
Verwendung der gesicherten KNR und VNR ins FXML2 dataPane lädt. Eine Möglichkeit wäre es, den Methodenaufruf hier anzuhängen:
Java:
public void openIntern(ActionEvent event) throws IOException {
        setDataPane("/samplefx/view/FXML2.fxml");
        ...load Daten aus der DB ???
    }


Dazu müsste jedoch vom Controller von FXML1 aus eine Methode des Contrlollers von FXML2 aufgerufen werden. Bei der Suche nach
einer Lösung habe ich https://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml gefunden, leider
sind dort sehr viele Wege aufgeführt und ich weiß nicht, ob der für meine Konstellation richtige dabei ist.

Noch besser fände ich, wenn man an das Laden von FXML2 mittels eines Focus-Listeners den Methodenaufruf binden
und so die Daten automatisch laden könnte. Ich hoffe, hier wieder Hilfe zu finden.
 

Hatsi09

Aktives Mitglied
Kannst du mal konkret die Methoden posten, die du aufgerufen haben willst? Also welche Methode von welcher aufgerufen wird?
 

gottfried

Mitglied
@Hatsi09
also, DataPane ist die zweite, leere VBox in der SplitPane. Im MainController.java stehen die Methoden, um die FXML Files in die DataPane zu laden. Zum Beispiel
Java:
public void kundenTSR(ActionEvent event) throws IOException {
        setDataPane(fadeAnimate("/samplefx/view/FXML1.fxml"));
}
Dort werden (im Moment per Button) Daten in eine ComboBox geladen. Das soll möglichst sofort mit dem Laden der FXML1.fxml
passieren. Die Methode dazu:
Java:
 final ObservableList options = FXCollections.observableArrayList();
    ...
@FXML
    private void fillCombo(ActionEvent event) {
        Connection conn = null;
        try {
            Class.forName("org.postgresql.Driver");
            conn = DriverManager.getConnection(jhpn, uname, pw);

            String sSQL = "SELECT kunden.bem FROM kunden ORDER BY kunden.bem ASC";
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery(sSQL);
            while (rs.next()) {
                options.add(rs.getString(1));
            }
            ComboBoxKunden.setItems(options);
            ComboBoxKunden.requestFocus();
            conn.close();

        } catch (ClassNotFoundException | SQLException e) {
            JOptionPane.showMessageDialog(null, "Fehler in fillCombo(): " + e);
        }
    }
Mein letzter Stand ist, dass der Focus nach dem Laden von FXML1 im Feld start ist (Cursor) und ich versuche mit
Java:
start.focusedProperty().addListener((ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) -> {
            focusState(newValue);
        });
einen Listener einzufügen, um den Focuserhalt des Feldes zu nutzen, weiß aber nicht so recht, wie man das auswertet, um eine Methode auszuführen. Ist das überhaupt so lösbar?
 

Hatsi09

Aktives Mitglied
Zudem ersten Punkt: Wenn die Daten der Combobox mit der FXML1 geladen werden sollen, warum machst du das dann mit dem Button und nicht gleich in der initialize des Controllers von FXML1?
Was genau meinst du mit Feld start, ist das die Combobox, deren Inhalt du lesen willst oder ist das ein Array?
 

lam_tr

Top Contributor
@gottfried
Sorry irgendwie verstehe ich gar nicht was du genau haben willst. Kannst du eventuell erklären was du haben willst Pseudocodemäßig oder in Stichworten ohne Code?
 

gottfried

Mitglied
hallo
ich habe schon relativ viel mit JavaSwing gemacht, mit FX beginne ich erst. Gestern ist das von mir bestellte JavaFX-Buch
eingetroffen und wenn ich wieder mehr Zeit habe werde ich mich da rein vertiefen und dann versuchen, dem Hinweis
von Hatsi09 zu folgen, es in der initialize des Controllers von FXML1 zu machen. Das mit dem Button war eh nur zum
Test der oben zitierten Methode gedacht. Erstmal Danke, ich melde mich wieder.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
J splitpane - Wechseln auf anderen Split erkennen AWT, Swing, JavaFX & SWT 11
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
L JavaFX Splitpane css stylen AWT, Swing, JavaFX & SWT 18
J SplitPane Aussehen des Divider verändern AWT, Swing, JavaFX & SWT 7
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
L GUI - Jpanel - Splitpane will nicht aktualisieren AWT, Swing, JavaFX & SWT 4
T Problem mit SplitPane AWT, Swing, JavaFX & SWT 6
R SplitPane vordefinieren AWT, Swing, JavaFX & SWT 10
E Größenänderung von nur EINER Seite einer SplitPane AWT, Swing, JavaFX & SWT 2
G Suche 2 Componenten: Splitpane ausblenden / Stecknadel AWT, Swing, JavaFX & SWT 2
G Im SplitPane zeichnen AWT, Swing, JavaFX & SWT 6
S Splitpane - Divider fix? AWT, Swing, JavaFX & SWT 2
K Probleme mit SplitPane AWT, Swing, JavaFX & SWT 2
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
P Swing Anwendung von LayeredPanel AWT, Swing, JavaFX & SWT 6
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
thor_norsk JavaFX Anwendung stürzt ab AWT, Swing, JavaFX & SWT 4
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
G JavaFX Steuerung bzw. Test von externer JavaFX Anwendung (liegt nur als jar vor) AWT, Swing, JavaFX & SWT 9
N JavaFX Vor beenden der Anwendung durch klicken von X Dialog zeigen AWT, Swing, JavaFX & SWT 1
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
B JavaFX Wie A4-Seite in meiner Anwendung repräsentieren AWT, Swing, JavaFX & SWT 6
B JavaFX JavaFX Anwendung deployen (entw als runnableJAR oder exe-Datei) AWT, Swing, JavaFX & SWT 15
OSchriever Anwendung aus SystemTray öffnen AWT, Swing, JavaFX & SWT 29
T Anwendung mit X schliessen AWT, Swing, JavaFX & SWT 1
L JavaFX OpenJFX13 Anwendung exportieren AWT, Swing, JavaFX & SWT 7
D PDF Viewer in SWT-Anwendung AWT, Swing, JavaFX & SWT 8
O Basics - Anwendung erstellen mit mehreren Szenen AWT, Swing, JavaFX & SWT 1
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
A JavaFX Anwendung in Jar Datei AWT, Swing, JavaFX & SWT 8
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
J Splashscreen Start Anwendung AWT, Swing, JavaFX & SWT 14
MiMa Programmeinstellungen für Anwendung?? AWT, Swing, JavaFX & SWT 54
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
I JFileChooser mit System L&F bei anderem L&F der eigtl. Anwendung AWT, Swing, JavaFX & SWT 0
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
L JavaFX PdfViewer für JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
D JafaFX Anwendung beenden AWT, Swing, JavaFX & SWT 11
B Wie erstelle ich eine JavaFX Anwendung von diesem Code? AWT, Swing, JavaFX & SWT 3
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
X Anwendung skalierbar AWT, Swing, JavaFX & SWT 3
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
D JavaFX Anwendung hängt sich permanent auf AWT, Swing, JavaFX & SWT 6
L JavaFX Java FX Anwendung nach MVC mit Observer Pattern AWT, Swing, JavaFX & SWT 15
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
I Variabeln speichern in Desktop Anwendung AWT, Swing, JavaFX & SWT 2
V Anwendung im Vollbild zentrieren AWT, Swing, JavaFX & SWT 13
A Swing Textübergabe innerhalb der Anwendung in unterschiedlichen Fenster AWT, Swing, JavaFX & SWT 8
GreyFox JLabel in laufender Anwendung erzeugen AWT, Swing, JavaFX & SWT 6
J JavaFX Anwendung läuft in eclipse, nicht aber exportiert AWT, Swing, JavaFX & SWT 2
P Anwendung kommt nach minimieren nicht mehr in den Vordergrund AWT, Swing, JavaFX & SWT 5
K 3D-Grafik Anwendung von Java in Gnuplot AWT, Swing, JavaFX & SWT 3
M SWT Anwendung in der Symbolleiste verstecken AWT, Swing, JavaFX & SWT 5
B SWT Redesign SWT Anwendung AWT, Swing, JavaFX & SWT 7
M Java anwendung VOR vollbildspielen (schon wieder...) AWT, Swing, JavaFX & SWT 5
S Swing Lauftext Performance Probleme, in größerer Anwendung AWT, Swing, JavaFX & SWT 6
VfL_Freak Swing Zweiter Monitor von Java-Anwendung ansprechbar ?? AWT, Swing, JavaFX & SWT 2
S Swing Ist meine gute Java Anwendung vorgängig? AWT, Swing, JavaFX & SWT 20
P Klassenaufbau bei komplexerer GUI Anwendung AWT, Swing, JavaFX & SWT 14
S Java GUI Anwendung ohne Konsole starten AWT, Swing, JavaFX & SWT 6
qwerqer Swing Anwendung soll blinken (Taskleiste) AWT, Swing, JavaFX & SWT 3
R Java Desktop Anwendung erstellen. Womit? AWT, Swing, JavaFX & SWT 3
eLogic Fullscreen anwendung aus der man nicht rauskommt AWT, Swing, JavaFX & SWT 37
T Java-Anwendung arbeitet Programm in seltsamer Reihenfolge ab AWT, Swing, JavaFX & SWT 3
H Anwendung schließen ohne System.exit AWT, Swing, JavaFX & SWT 5
R Anwendung ohne Symbol in der Taskleiste AWT, Swing, JavaFX & SWT 3
H SWT RAP Anwendung - Tabelle - Theming AWT, Swing, JavaFX & SWT 3
alderwaran Swing XML editor plugin für eigene anwendung AWT, Swing, JavaFX & SWT 2
G Swing Update-Funktion für Swing-Anwendung AWT, Swing, JavaFX & SWT 5
C Swing Eine SWING-Anwendung mittels MVC AWT, Swing, JavaFX & SWT 4
Eldorado Frage zur Anwendung des MVC-Konzept AWT, Swing, JavaFX & SWT 33
B SWT Hello World-Anwendung mit GUI in Eclipse -Problem mit Import von SWT AWT, Swing, JavaFX & SWT 9
G Applet und Swing Anwendung AWT, Swing, JavaFX & SWT 2
J Client Server Anwendung - Mehrere Clients in einer Server GUI AWT, Swing, JavaFX & SWT 11
F Anwendung auf Teskleiste legen AWT, Swing, JavaFX & SWT 3
B MDI Anwendung alle maximierten InternalFrames in Tabs AWT, Swing, JavaFX & SWT 3
T Anwendung starten AWT, Swing, JavaFX & SWT 5
J Anwendung von Swing nach SWT bzw. Eclipse portieren AWT, Swing, JavaFX & SWT 3
2 Tablet-PC Java-Anwendung -> Tablet-Pen Problem !! AWT, Swing, JavaFX & SWT 3
J Swing Anwendung schließen im Listener AWT, Swing, JavaFX & SWT 3
isowiz Vorteil einer RCP Anwendung gegenüber Swing AWT, Swing, JavaFX & SWT 3
? Java-SWT-Anwendung in der Taskleiste nicht sichtbar AWT, Swing, JavaFX & SWT 6
H Netbeans-Anwendung schliessen AWT, Swing, JavaFX & SWT 8
M "Billig Excel" Anwendung mit Swing - Aufwand ? AWT, Swing, JavaFX & SWT 4
G "Views-Abwechseln-Pro " in RCP-Anwendung AWT, Swing, JavaFX & SWT 2
H PopUp-Fenster in einer Java Server Faces Anwendung AWT, Swing, JavaFX & SWT 4
T Auf Fenster innerhalb der Anwendung zugreifen-auch elegant? AWT, Swing, JavaFX & SWT 2
G Organisation Anwendung mit mehreren Eingabedialogen AWT, Swing, JavaFX & SWT 3
H JWindow schließen bei einem Klick außerhalb der Anwendung? AWT, Swing, JavaFX & SWT 19
G SWT DatePicker funzt nicht in eigener Anwendung AWT, Swing, JavaFX & SWT 5
E Bestehende Anwendung erweitern ->JFrame in JPanel verpack AWT, Swing, JavaFX & SWT 4
U Anwendung nicht beenden beim form schliessen? AWT, Swing, JavaFX & SWT 6
T "Echte" MDI Anwendung AWT, Swing, JavaFX & SWT 4
G Auf markierten Text einer anderen Anwendung zugreifen. AWT, Swing, JavaFX & SWT 8
G Relativer Pfad in Rich Client Anwendung AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben