JavaFX Netbeans Aufruf Funktion aus Scenebuilder

Juelin

Bekanntes Mitglied
Hallo zusammen,
ich muss mal wieder nerven.
Folgendes Problem:
Habe eine Pane in Scenebuilder erstellt (siehe bild1).
Habe fenster.fxml Datei erstellt (siehe fenster.zip).
Habe fensterController.java erstellt:

Java:
package com.juelin.projekt8;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Pane;
public class fensterController
    {
    @FXML
    private Pane pane;
    @FXML
    private TextField eingabe1;
    @FXML
    private Label anzeige1;
    @FXML
    private Button knopf1;
    public String einfeld;
    @FXML
    void B1Click(ActionEvent event)
        {
        if (knopf1.isVisible())
            {
            System.out.println("Button 1 Click");
            eingabe1.setEditable(true);
            System.out.println("Edittable gesetzt True");
            setEingabe1Editable(Boolean.FALSE);
            System.out.println("Edittable gesetzt False");
            }
        }
    @FXML
    void E1Action(ActionEvent event)
        {
        if (eingabe1.isEditable())
            {
            System.out.println("Edit 1 Enter <"+eingabe1.getText()+">");
            }
        }
    @FXML
    void E1Down(KeyEvent event)
        {
        if (eingabe1.isEditable())
            {
            System.out.println("Edit 1 Down");
            }
        }
    @FXML
    void E1Press(KeyEvent event)
        {
        if (eingabe1.isEditable())
            {
            System.out.println("Edit 1 Press");
            }
        }
    @FXML
    void setAnzeige1Visible(Boolean wert)
        {
        anzeige1.setVisible(wert);
        }
    @FXML
    void setEingabe1Visible(Boolean wert)
        {
        eingabe1.setVisible(wert);
        }
    @FXML
    void setEingabe1Editable(Boolean wert)
        {
        System.out.println("setEingabe1Editable = "+wert);
        eingabe1.setEditable(true);
        }
    @FXML
    String getEingabe1Text()
        {
        return eingabe1.getText();
        }
    @FXML
    void setEingabe1Text(String wert)
        {
        eingabe1.setText(wert);
        }
    public String geteinfeld()
        {
        return einfeld;
        }
    public void seteinfeld(String wert)
        {
        this.einfeld = wert;
        }
    }

//        anzeige1.setVisible(true);
//        anzeige1.setText("   Label 1   ");
//        anzeige1.setTextFill(Color.YELLOW);
//        anzeige1.setFont(Font.font("Arial Bold", FontWeight.BOLD, 30));
//        anzeige1.setBackground(new Background(new BackgroundFill(Color.BLUE,  CornerRadii.EMPTY, Insets.EMPTY)));

//        eingabe1.setVisible(true);
//        eingabe1.setEditable(false);
//        eingabe1.setText("");
//        eingabe1.setFont(Font.font("Arial Bold", FontWeight.BOLD, 30));
//        eingabe1.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY,  CornerRadii.EMPTY, Insets.EMPTY)));

//        knopf1.setVisible(true);

Mein Main-Programm:

Code:
package com.juelin.projekt8;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
/**
 * JavaFX App
 */
public class App extends Application
    {
    @FXML
    private Pane pane;
    @FXML
    private TextField eingabe1;
    @FXML
    private Label anzeige1;
    @FXML
    private Button knopf1;
    @FXML
    private static Scene scene;
    @FXML
    @Override
    public void start(Stage stage) throws IOException
        {
        scene = new Scene(loadFXML("fenster"), 600, 400, Color.BLACK);
        scene.setFill(Color.BLACK);
        stage.setScene(scene);
        stage.setTitle("mein erstes Programm mit SceneBuilder");
        stage.setX(0);
        stage.setY(0);
        stage.setWidth(600);
        stage.setHeight(400);
        stage.centerOnScreen();
        stage.setResizable(false);
        stage.show();
        fensterController gVarRout = new fensterController();
        gVarRout.setEingabe1Editable(Boolean.TRUE);
        }
    @FXML
    private static Parent loadFXML(String fxml) throws IOException
        {
        FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml"));
        return fxmlLoader.load();
        }
    @FXML
    public static void main(String[] args)
        {
        launch();
        }
    }

Im Main-Programm (Routine start) rufe ich eine Methode "gVarRout.setEingabe1Editable(Boolean.TRUE);" auf.
Im Programm fensterController ist die Methode "@FXML void setEingabe1Editable(Boolean wert)".
Wie man im Protokoll (Output-Run.txt) sehen kann wird zwar der Befehl " System.out.println("setEingabe1Editable = "+wert);"
noch ausgefüht, aber der Befehl "eingabe1.setEditable(true);" läuft auf Fehler.
Das paradoxe daran ist: Ich habe dieselben Befehle im Event "void B1Click(ActionEvent event)" drin und da laufen sie ohne Fehler.

Habe schon mehrere Sachen probiert und ins Internet geschaut, aber nix gefunden.

Hat da Jemand eine Idee? Wäre schön.

Danke und Gruß
Jürgen
 

Anhänge

  • bild1.jpg
    bild1.jpg
    48,4 KB · Aufrufe: 0
  • Output-Run.txt
    9,6 KB · Aufrufe: 0
  • fenster.zip
    713 Bytes · Aufrufe: 0

KonradN

Super-Moderator
Mitarbeiter
Du hast zwei Instanzen von deiner Controller Klasse:
  • einmal erzeugt vom FXMLLoader, der bei dieser Instanz dann auch die Felder initialisiert.
  • dann die selbst erstellte Instanz. Da sind dann natürlich die Felder nicht initialisiert und eingabe1 ist null.

Du kannst aber mit dem FXMLLoader alles laden und im Anschluss Dir den Controller geben lassen:
Java:
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource("fenster.fxml"));
scene = new Scene(loadFXML(fxmlLoader.load(), 600, 400, Color.BLACK);
fensterController gVarRout = fxmlLoader.getController();

Das wäre Code, der paar Zeilen in deiner start Methode von App ersetzen könnte.
 

Juelin

Bekanntes Mitglied
Hallo Konrad,
wie immer wunderbar geholfen.
Im Befehl: scene = new Scene(loadFXML(fxmlLoader.load(), 600, 400, Color.BLACK);
musste ich aber das loadFXML( raus nehmen.
Sonst kommt Fehler unbekanntes Symbol.
Noch eine Frage: Gibt es in Netbeans einen Befehl womit man den Cursor auf
ein bestimmtes Element setzen kann?
Und wie kann ich gVarRout global machen, damit ich die auch in anderen Routinen nutzen kann?
Nochmals Danke, würde Dich ja einladen auf ein...zwei... Getränke.
Weiss aber nicht wo Du wohnst.
Gruß
Jürgen
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Gibt es in Netbeans einen Befehl womit man den Cursor auf
ein bestimmtes Element setzen kann?
Ich weiß nicht, was genau Du meinst, aber es gibt in NetBeans viele Möglichkeiten, durch den Code zu navigieren.

Zum Beispiel:
  1. Navigator (Strg+7): das ist das Panel, das normalerweise unter dem Projekt-Explorer angezeigt wird. Hier kannst Du zu bestimmten Membern wie Methoden bzw. Instanz- bzw. Klassenvariablen springen.
  2. Die Suche in der Datei (Strg+F) und über das gesamte Projekt bzw. über alle offenen Projekte (Strg+Shift+F). Bei der Suche in der Datei ganz normal mit Next und Previous zwischen den Vorkommen springen. Bei der Suche im Projekt bzw. Projekten im Ergebnisfenster (Search Results) per Doppelklick an die gefundene Stelle springen.
  3. Per Shift+Klick bzw. Strg+B kann zur Deklaration einer Variablen bzw. einer Methode gesprungen werden, die sich unter dem Cursor befindet.
  4. Mit Alt+F7 bzw. Rechtsklick + "Find Usages" kannst Du suchen, wo im Code eine Variable bzw. eine Methode verwendet wird. Im Ergebnisfenster (Usages) kannst Du per Doppelklick direkt an diese Stelle springen
Das wären jetzt mal ein paar Möglichkeiten.

EDIT: hatte versehentlich abgeschickt, daher ergänzt.
 
Zuletzt bearbeitet:

Juelin

Bekanntes Mitglied
ich meine, das ein bestimmtes Element im Bild (z.B Textfield) den Focus bekommt und dort der Cursor an eine
bestimmte Stelle gesetzt wird.
 

KonradN

Super-Moderator
Mitarbeiter
musste ich aber das loadFXML( raus nehmen.
Ja, das habe ich vergessen raus zu löschen. Das typische Problem, wenn man Code im Browser umstellt. Da übersieht man schnell mal so eine Stelle.

ich meine, das ein bestimmtes Element im Bild (z.B Textfield) den Focus bekommt und dort der Cursor an eine
bestimmte Stelle gesetzt wird.
Du kannst die Position des Cursors in einem TextField mittels positionCaret setzen:

Dazu evtl. noch ein requestFocus() um auch den Focus auf das Control zu setzen. Ich habe das jetzt aber nicht getestet und kann daher nichts zu der Notwendigkeit sagen.

new Robot().mouseMove(0, 0);
habe ich schon probiert, funktioniert aber nicht.
Davon kannst Du Dich gleich verabschieden. Du willst ja nicht ein fremdes Programm steuern über Mausbewegungen und so. Du willst Dein Programm steuern und da hast Du ja die volle Kontrolle über alles. Da wäre der Umweg über Maus oder Tastatur ein Umweg, der dann auch leicht auf Grund von Anpassungen dann schnell nicht mehr geht.
 

Juelin

Bekanntes Mitglied
Ja Danke, habe ich auch schon gefunden.
eingabe1.requestFocus();
Also nochmal vielen Dank an Alle.
Gruß
Jüürgen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin starten maven javafx programm ohne netbeans AWT, Swing, JavaFX & SWT 38
MiMa Netbeans Projektdatum herausfinden? AWT, Swing, JavaFX & SWT 3
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
Georges456 NetBeans am Mac leider ohne FXML AWT, Swing, JavaFX & SWT 17
S Ich bringe Code mit JavaFX unter Apache NetBeans IDE 12.6 nicht zum laufen. AWT, Swing, JavaFX & SWT 14
F Gebundene Eigenschaften bei Komponenten mit NetBeans verarbeiten AWT, Swing, JavaFX & SWT 3
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
JR2205 Swing JxMaps Einbindung Netbeans JFrame AWT, Swing, JavaFX & SWT 4
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
M NetBeans JFrame Grundlangen fragen AWT, Swing, JavaFX & SWT 6
V Netbeans: TabbedPane, ScrollPane und Graphics AWT, Swing, JavaFX & SWT 4
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
A Flug Drone steuern "DronePosition" NetBeans AWT, Swing, JavaFX & SWT 4
D SteelSeries in Netbeans als Drag-and-Drop einbinden AWT, Swing, JavaFX & SWT 0
M NetBeans Swing GUI Builder AWT, Swing, JavaFX & SWT 2
E Mit Netbeans von einer Form auf eine Komponente einer anderen Form zugreifen AWT, Swing, JavaFX & SWT 2
Helgon Swing Mit Swing zeichnen / NetBeans GUI AWT, Swing, JavaFX & SWT 11
B Swing Filter für JTable mit Netbeans Editor AWT, Swing, JavaFX & SWT 2
S NetBeans GUI Builder - Code-Platzierung AWT, Swing, JavaFX & SWT 3
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
N Swing Netbeans 7.1 keine DesktopApplication mehr möglich ? AWT, Swing, JavaFX & SWT 15
L Swing Fenstergröße setzen (Netbeans) AWT, Swing, JavaFX & SWT 6
T jpanel höhe netbeans.... AWT, Swing, JavaFX & SWT 5
B Netbeans Swing/AWT Editor editierbar? AWT, Swing, JavaFX & SWT 5
B Look And Feel ändern (Netbeans) AWT, Swing, JavaFX & SWT 18
T JButtons indexiert unter NetBeans anlegen AWT, Swing, JavaFX & SWT 7
I jList und Netbeans AWT, Swing, JavaFX & SWT 4
G GUI Elemente aus NetBeans verwenden AWT, Swing, JavaFX & SWT 8
Binary.Coder Netbeans GUI zu Eclipse (schon gegooglet und einiges ausprobiert). AWT, Swing, JavaFX & SWT 4
F Netbeans Gui in BlueJ Projekt AWT, Swing, JavaFX & SWT 9
D Netbeans GUI-Builder Darstellungsprobleme AWT, Swing, JavaFX & SWT 2
R jFreeChart in eine NetBeans Projekt integrieren AWT, Swing, JavaFX & SWT 24
S auf einem mit Netbeans (GUI) erstellten JPanel (eines JFrames) zeichnen? AWT, Swing, JavaFX & SWT 7
S Java3D in ein JPanel integrieren mit Netbeans 6.8 AWT, Swing, JavaFX & SWT 4
V [SUCHE]GUI Programmier Tutorial[Netbeans] AWT, Swing, JavaFX & SWT 8
U Netbeans GUI nach Eclipse AWT, Swing, JavaFX & SWT 7
S GUI von Sourcecode in Netbeans AWT, Swing, JavaFX & SWT 3
S NetBeans && multiple Fensteroeffnung AWT, Swing, JavaFX & SWT 3
R AWT [Anfänger] Radio Buttons NetBeans 6.7.1 AWT, Swing, JavaFX & SWT 2
H Swing Netbeans Panel einbinden AWT, Swing, JavaFX & SWT 5
C NetBeans Gui-Inhalt ändern AWT, Swing, JavaFX & SWT 4
A NetBeans und ComboBox AWT, Swing, JavaFX & SWT 2
H Netbeans und JavaDB AWT, Swing, JavaFX & SWT 11
E Hat Netbeans unter Linux kein Designer für Swing? AWT, Swing, JavaFX & SWT 3
L Animierter Splash-Screen (mit NetBeans 6.1 z.B.) AWT, Swing, JavaFX & SWT 2
H Netbeans-Anwendung schliessen AWT, Swing, JavaFX & SWT 8
O Bindings, dynamische Verbindung (Vorbau mit Netbeans) AWT, Swing, JavaFX & SWT 10
G paintComponent() Methode für JPanel in NetBeans überschreibe AWT, Swing, JavaFX & SWT 2
D Problem mit Netbeans und repaint() AWT, Swing, JavaFX & SWT 5
J Auslösung von Aktionen über Tastatur (Netbeans) AWT, Swing, JavaFX & SWT 23
K Netbeans GUI Builder (Matisse) und erstellen von JPopupMenu AWT, Swing, JavaFX & SWT 1
W netbeans projekt in Eclipse importieren -gui teil geht nicht AWT, Swing, JavaFX & SWT 5
loadbrain Icon für JFrame mit Netbeans AWT, Swing, JavaFX & SWT 3
L JTable nach Buttonklick auslesen [NetBeans] AWT, Swing, JavaFX & SWT 4
L NetBeans will ne Klammer ich weiß aber nicht wohin AWT, Swing, JavaFX & SWT 7
M Button und Exception mit NetBeans AWT, Swing, JavaFX & SWT 3
M Einstellung des Projekt-Verzeichnis in NetBeans AWT, Swing, JavaFX & SWT 4
P Fehler beim Verwenden von swt.jar mit NetBeans AWT, Swing, JavaFX & SWT 2
R NetBeans - JFrame und JPanel AWT, Swing, JavaFX & SWT 3
H AbsoluteLayout nicht nur unter Netbeans AWT, Swing, JavaFX & SWT 5
A Applikation mit Netbeans-Design AWT, Swing, JavaFX & SWT 4
F Swing mit NetBeans AWT, Swing, JavaFX & SWT 6
G Gui updated beim zweiten Aufruf nicht mehr AWT, Swing, JavaFX & SWT 15
T SWT: Aufruf des Top-Dialogfensters und sperre des Hintergrundes AWT, Swing, JavaFX & SWT 2
C Swing Aufruf der Funktion (die ein Dialog anzeigt) über Symbol anzeigen lassen AWT, Swing, JavaFX & SWT 4
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
P GUI Aufruf AWT, Swing, JavaFX & SWT 2
MiMa Übergeben von Paramter bei FXML Aufruf? AWT, Swing, JavaFX & SWT 8
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
D JLabel bei Aufruf neue Zeile AWT, Swing, JavaFX & SWT 5
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
S 2D-Grafik repaint()-Aufruf. Und nichts geschieht. AWT, Swing, JavaFX & SWT 5
F 2D-Grafik Grafikproblem nach Aufruf von JColorChooser-Dialog AWT, Swing, JavaFX & SWT 6
D Swing JOptionPane verschwindet beim 2. Aufruf einfach so?? AWT, Swing, JavaFX & SWT 2
A Swing JFileChooser - Größenänderung nach Aufruf von showOpenDialog() AWT, Swing, JavaFX & SWT 15
Ernesto95 AnimationLoop - Problem bei Aufruf von repaint AWT, Swing, JavaFX & SWT 6
W Funktionen, sowie aufruf einiger Komponenten AWT, Swing, JavaFX & SWT 4
X Swing Panel Extra Klasse & Aufruf über Button AWT, Swing, JavaFX & SWT 18
P JPanel-Aufruf funktioniert nicht AWT, Swing, JavaFX & SWT 5
K Swing setPreferredWidth für JTable funktioniert nur beim ersten Aufruf!? AWT, Swing, JavaFX & SWT 8
P EDT Problem? Kein Aufruf der repaint Methode AWT, Swing, JavaFX & SWT 6
X Alte Frame-Größe beim wiederholten Aufruf AWT, Swing, JavaFX & SWT 5
D Aufruf neuer Klasse ohne Erzeugung eines neuen Fensters AWT, Swing, JavaFX & SWT 3
C Unterschiedlicher Aufruf der paint() Methode ? (AWT/Swing) AWT, Swing, JavaFX & SWT 2
J Swing setLocation Aufruf in JApplets 20 mal langsamer als in JFrames AWT, Swing, JavaFX & SWT 8
C SWT SWT Dialogfenster blitzen bei deren Aufruf AWT, Swing, JavaFX & SWT 2
P seltsame Performance Probleme bei 2 Guis abhängig vom Aufruf AWT, Swing, JavaFX & SWT 8
JFeel-x repaint für Aufruf von paintComponent-Klasse ungeeignet? AWT, Swing, JavaFX & SWT 11
Dragonfire ZoomImage flackert -> Fehler: repaint-Aufruf [gelöst] AWT, Swing, JavaFX & SWT 5
D Container des JFrame zeichnet sich nicht bei Aufruf von paintAll AWT, Swing, JavaFX & SWT 9
S NullPointerException bei Aufruf von updateUI() beim JFrame AWT, Swing, JavaFX & SWT 12
A preferredLayoutSize aufruf erzwingen AWT, Swing, JavaFX & SWT 4
D JTab <--> JPanel aufruf per Button AWT, Swing, JavaFX & SWT 2
G Keine Anzeige von Grafik bei externem paintComponent-Aufruf AWT, Swing, JavaFX & SWT 2
M Problem mit erneutem Aufruf AWT, Swing, JavaFX & SWT 4
K g.DrawImage unter paintComponent klappt nur beim 1. Aufruf AWT, Swing, JavaFX & SWT 3
G ActionListener und Methoden-Aufruf aus anderen Klassen AWT, Swing, JavaFX & SWT 3
G NullPointerException bei Aufruf von JTabbedPane.getSelectedI AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben