Swing Wert aus Textfeld auslesen -- null Fehler

zuflucht

Mitglied
Hi Folks,

ich zerbreche mir langsam den Kopf.....

Folgendes Problem:
Ich möchte aus einem Textfeld einen Wert mittels txtField.getText(); Auslesen und in einer Variable speichern.
Das ganze soll über eine Funktion getValuesFromGUI(); geschehen. Sobald ich jedoch die Abfrage nicht mehr im Initialize() sondern in der getValuesFromGUI(); durchführe bekomme ich eine NULL exception.

Besonders Kurios, meine Methode funktioniert in einem Prototypen ohne Probleme, im zweiten in dem ich noch TabbedPanes hinzufüge nicht mehr.

Ich bräuchte etwas Hilfe um meine Werte doch ncoh aus zu lesen.


hier mein Code Snippet.

Java:
private static double lTLineOven1;
static JTextField txtLOven1;


    private static void getValuesFromGUI(){
        lTLineOven1 = Double.valueOf(txtLOven1.getText());       //keine Ausgabe möglich
        }
    /**
     * Launch the application.
     */
    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

            public void run() {

                try {
                    GUI_Complex window = new GUI_Complex();
                    window.frame.setVisible(true);
                } catch(Exception e) {
                    e.printStackTrace();
                }
            }
        });
        getValuesFromGUI();      
    }

    public GUI_Complex() {
        initialize();
       
    }

    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 1045, 657);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        panColumn = new JPanel();
        tabbedPane.addTab("Column Setup", null, panColumn, null);
        GridBagLayout gbl_panColumn = new GridBagLayout();
        gbl_panColumn.columnWidths = new int[]{1, 0, 80, 37, 60, 0, 0};
        gbl_panColumn.rowHeights = new int[]{0, 22, 30, 30, 30, 15, 30, 30, 30, 30, 0, 30, 30, 30, 31, 0, 30, 30, 0};
        gbl_panColumn.columnWeights = new double[]{0.0, 0.0, 1.0, 1.0, 1.0, 0.0, Double.MIN_VALUE};
        gbl_panColumn.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
        panColumn.setLayout(gbl_panColumn);


        txtLOven1 = new JTextField();
        txtLOven1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                calculate();
            }
        });
        txtLOven1.setText("0.15");
        GridBagConstraints gbc_txtLOven1 = new GridBagConstraints();
        gbc_txtLOven1.fill = GridBagConstraints.HORIZONTAL;
        gbc_txtLOven1.insets = new Insets(0, 0, 5, 5);
        gbc_txtLOven1.gridx = 4;
        gbc_txtLOven1.gridy = 2;
        panColumn.add(txtLOven1, gbc_txtLOven1);
        txtLOven1.setColumns(10);

lTLineOven1 = Double.valueOf(txtLOven1.getText());        //Ausgabe möglich


Der Hauptunterschied zum Prototypen sind die zusätzlich container. Müssen alle Container global sein, um auf ein darin liegendes (globales) Objekt zugreifen zu können?


Danke für eure Hilfe.

Viele Grüße
zuflucht
 

zuflucht

Mitglied
Hallo zusammen,

ich habe gerade den Fehler gefunden :)

er hat sich in Main() versteckt.

der aufruf meiner Methode war zwei zeilen zu tief gerutscht.
richtig wäre
Java:
    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

            public void run() {

                try {
                    GUI_Complex window = new GUI_Complex();
                    window.frame.setVisible(true);
                } catch(Exception e) {
                    e.printStackTrace();
                }
                getValuesFromGUI();
            }
        });
            
    }

ich war wollte also ein Textfeld auslesen, an einer stelle auserhalb von run()

ist die run() Methode soetwas wie eine ständig ausgeführte Methode? Aus der ich während das Programm läuft nicht herraus komme?

grüße
zuflucht
 

mihe7

Top Contributor
ich zerbreche mir langsam den Kopf.....
Mach lieber schnell, dann tut's nicht so weh ;)

ist die run() Methode soetwas wie eine ständig ausgeführte Methode?
Nein. Es ist einfach eine durch das Runnable-Interface definierte Methode. Der Aufrufer kann damit etwas "laufen lassen", ohne wissen zu müssen, was genau. Runnable wird insbesondere im Zusammenhang mit Threads verwendet. Die EventQueue dient zum Beispiel dazu, "Aufträge" zu verwalten, die vom sog. "Event Dispatch Thread" (EDT) abgearbeitet werden. Der EDT ist in AWT/Swing für das User Interface zuständig.

Schreib doch einfach mal, was Du vorhast, dann kann man wahrscheinlich besser helfen.
 

zuflucht

Mitglied
Hi, danke für die Erklärung, und dein Interesse.

ich entwickel ein Tool zum Berechnen von Gasflüssen / Gas Massenströmen für komplexe Kapillaranordnungen und Schaltungen.
die Physik / Logik dahinter ist kein Problem, Mometan berechnen wir das noch mit Excel. Ich möchte das jedoch properitär in ein Plugin umsetzen, auch um das ganze know How besser zu schützen.

die schwierigkeit bei dem ganzen, ich bin Lebensmittelchemiker und bringe mir das Programieren grade neben der Promotion selber bei...


die Größten Probleme habe ich derzeit beim erstellen der GUI. Ich weis einfach nicht genug über Benutzerführung und wie welche Komponeten am effektivsten eingesetzt werden können.
Desweiteren hapert es an grundlagen, momentan ist quasi alles als static deklariert; weil eclipse das immer verlangt. Mir ist der unterschied zwischen static nicht static auch noch nicht ganz klar....
Wie man wan Objekte richtig und effektiv nutzt ist auch noch so eine Frage. Momentan erzeuge ich bei jeder rechnung jedes Objekt neu und lasse alles neu durchrödeln - das ginge sicher auch effektiver. Aber da ich hauptsächlich Analytische Lösungen verwenden kann ist die rechengeschwindigkeit momentan ein vernachlässigbares Problem.

Ich habe mir folgenden Plan zurecht gelegt.

im Ersten Schritt (aktuell):
Entwicklung der Logik, und benötigte Klassen;
Standalone Präsentator / Prototyp, mit einfachem GUI
-- aktuell JFrame - swing
-- Aufgabe GUI: Daten abfrage (etwa 30+ Parameter) und übergabe an Objekte
-- Darstellung der errechneten Gasdrücke und Flüsse.
-- Hilfestellung bei der Optimierung / Interpretation des dargestellten Systems

also alles statische Werte die vorerst nur refreshed werden müssen.

zweiter Schritt:
übersetzung und ggf. Integration in ein anderes System (Javabasiert)(plugin). -- leider swt (da hab ich gepennt)
dafür ist noch Vertragswerk abzuschließen, daher erst mal das Stand alone Tool.

zwei.fünf(ter) Schritt:
weiterentwicklung der Logik, sowie ausbau von funktionalitäten
Professionelles GUI (Auftragsarbeit, sobald Geld vorhanden ist)

Optional: vierter Schritt:
entwicklung eines Editors, samt interpreter für solche Systeme, um Software "automatisch" und fehlerfrei zu erzeugen.
oder ggf. direkter vertrieb des Editors.


Die einfachste Version des Tools ist auch schon kurz vor einer ersten alpha Testphase. :)

ich hoffe ich habe deine Frage was ich vorhabe ausreichend genug beantwortet.

Viele Grüße
zuflucht
 

mihe7

Top Contributor
Mir ist der unterschied zwischen static nicht static auch noch nicht ganz klar....
In der Objektorientierung beziehen sich Methoden und Attribute regelmäßig auf Objekte. Eine Klasse beschreibt eine Menge von Objekten als eine Art Bauplan für eben diese. Davon zu unterscheiden sind Methoden und Attribute, die sich nicht auf ein einzelnes Objekt sondern eher auf die Menge gleichartiger Objekte (sprich: auf die Klasse) beziehen.

Die objektbezogenen Methoden und Attribute werden Objekt-/Instanzmethoden bzw. -variablen genannt und sind nicht statisch. Die Methoden und Attribute, die sich dagegen auf die gesamte Klasse beziehen, werden als Klassenmethoden und -variablen bezeichnet und sind statisch.

Da statische Methoden/Variablen ohne Objekt existieren, ist es schwer vorstellbar, sie als objekt-orientiert anzusehen. Daher sollte man in OO-Anwendungen möglichst auf sie verzichten. Es gibt allerdings zwei Ausnahmen:

1. für die main-Methode ist static zwingend erforderlich
2. für die Definition von Konstanten ist es sinnvoll, static final zu verwenden.

momentan ist quasi alles als static deklariert; weil eclipse das immer verlangt.
Aus den oben genannten Gründen gilt, dass Du in einer statischen Methode - mangels zugehöriger Instanz - nicht auf Instanzvariablen zugreifen kannst. Dies gilt natürlich auch für die main-Methode. Um nicht-statische Methoden aufrufen zu können, benötigst Du ein Objekt. Folglich: Instanz erzeugen und dessen Methoden aufrufen.

Wie man wan Objekte richtig und effektiv nutzt ist auch noch so eine Frage.
Das ist so ziemlich die Kernfrage der objekt-orientierten Softwareentwicklung: das Modell der Anwendung, d. h. welche Objekte müssen wie mit welchen Objekten interagieren, damit das Zusammenspiel das Problem beschreibt und somit löst (so würde ich das zumindest mal grob umschreiben).

Was den Rest betrifft: da hast Du Dir ja einiges vorgenommen. Für die GUI-Programmierung braucht man einiges an Grundwissen. Wichtig: trenne Logik und Darstellung. Der Kern Deiner Anwendung besteht nicht aus dem UI, sondern aus der Logik dahinter. Am besten ist es, Du fängst mit einem textbasierten UI an. Ziel ist es, später ein grafisches UI ankoppeln zu können.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
S hashCode int wert AWT, Swing, JavaFX & SWT 6
B Slider-Wert an anderen Slider übergeben AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
S Caps-Lock Überprüfung gibt falschen Wert zurück AWT, Swing, JavaFX & SWT 1
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
K Swing DefaultListModel braucht zu lange, um Wert zu setzen AWT, Swing, JavaFX & SWT 7
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
M JavaFX Wert aus Tabellenzelle auslesen AWT, Swing, JavaFX & SWT 4
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
A Unterklasse schreibt Wert in JFrame AWT, Swing, JavaFX & SWT 4
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
M Swing Alter Wert von einer Variable wird verwendet AWT, Swing, JavaFX & SWT 8
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
M JSlider-Wert ändern, ohne ein ChangeEvent auszulösen AWT, Swing, JavaFX & SWT 4
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
A Ermittelter Wert auf Formular übertragen. AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
N Button Wert zuweisen AWT, Swing, JavaFX & SWT 3
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
L Swing Falscher Wert nach eigener Sortierung (JTable) AWT, Swing, JavaFX & SWT 2
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
C Swing JTable: edit Cell -> versteckten Wert ändern AWT, Swing, JavaFX & SWT 12
B JSlider - Wert am Mouszeiger anzeigen lassen AWT, Swing, JavaFX & SWT 6
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
S Frame - Panel - Dialog rückgabe wert AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
L ArrayList Wert löschen klappt nicht AWT, Swing, JavaFX & SWT 11
C jtable hintegrundfarbe integer wert AWT, Swing, JavaFX & SWT 14
S Swing noch nicht übergebenen Wert aus JComboBox auslesen AWT, Swing, JavaFX & SWT 4
S JTable Wert so bekommen wie er angezeigt wird..? AWT, Swing, JavaFX & SWT 2
I Swing JComboBox Wert setzen AWT, Swing, JavaFX & SWT 4
S Swing In JComboBox Wert und ID integrieren AWT, Swing, JavaFX & SWT 16
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
G JTable - bei falscher Eingabe wird alter Wert genommen. AWT, Swing, JavaFX & SWT 2
P Bei JComboBox einem Eintrag Wert zuweisen AWT, Swing, JavaFX & SWT 7
A Wert einer JComboBox auslesen AWT, Swing, JavaFX & SWT 1
B JTable Wert in Vector einlesen AWT, Swing, JavaFX & SWT 4
G JComboBox - Anzeige mit Wert verknüpfen AWT, Swing, JavaFX & SWT 3
V Start Button und Wert Eingabe in ein Fenster AWT, Swing, JavaFX & SWT 2
L JTree Frage -> nur den Wert des Knotens ausgeben? AWT, Swing, JavaFX & SWT 2
L Jcombobox + value Wert AWT, Swing, JavaFX & SWT 7
M Wert von einem Fenster zum anderen übergeben AWT, Swing, JavaFX & SWT 3
J Problem mit Alpha-Wert beim Button AWT, Swing, JavaFX & SWT 3
S JTextField. Bei Abbruch vorherigen Wert wiederherstellen AWT, Swing, JavaFX & SWT 2
D Wert von Kasse2 an Klasse1 übergeben AWT, Swing, JavaFX & SWT 3
D Scrollbalken Wert setzen AWT, Swing, JavaFX & SWT 6
S Eingegeben Wert wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S Methoden return wert? AWT, Swing, JavaFX & SWT 7
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
G JRadioButton beim deselektieren Wert ändern. AWT, Swing, JavaFX & SWT 2
M JTextField auslesen und Wert vergleichen? AWT, Swing, JavaFX & SWT 2
W JTextfield aktualisieren / Wert aus Datenbank neu abfragen AWT, Swing, JavaFX & SWT 2
T JTable überschreibt alten Wert AWT, Swing, JavaFX & SWT 12
T Jtable falscher Wert wird übergeben AWT, Swing, JavaFX & SWT 13
O JComboBox nach erkennt Wert nach setSelectedItem() nicht AWT, Swing, JavaFX & SWT 3
D JComboBox.getSelectedIndex() liefer immer 0 als Wert zurück? AWT, Swing, JavaFX & SWT 11
D Doppelklick in JList --> Wert auslesen AWT, Swing, JavaFX & SWT 8
G jspinner schrittweite in Abhängigkeit vom aktuellen Wert AWT, Swing, JavaFX & SWT 3
B Wert bei JFormattedTextField automatisch aktualisieren AWT, Swing, JavaFX & SWT 2
G Wert aus Dialog zurückgeben AWT, Swing, JavaFX & SWT 13
R Wert von ScrollBar ausgeben AWT, Swing, JavaFX & SWT 7
R JTable - Boolean-Wert aus Zelle auslesen. AWT, Swing, JavaFX & SWT 9
G Setzen wert in JTextField AWT, Swing, JavaFX & SWT 11
H JList: Mit ausgewähltem Wert weiterarbeiten AWT, Swing, JavaFX & SWT 16
E x wert von einem vorhandenen punkt abziehen? AWT, Swing, JavaFX & SWT 3
B Wert einer JCombobox in einer JTable setzen AWT, Swing, JavaFX & SWT 2
H Den wert aus einem Text field holen AWT, Swing, JavaFX & SWT 5
R JTable valueChanged() {wert an GUI} AWT, Swing, JavaFX & SWT 5
R wert aus editable JComboBox holen AWT, Swing, JavaFX & SWT 2
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben