java-lang.NullPointerException die 2te

Falls in der Zeile in der Methode test die Exception auftritt, ist das ja auch ganz klar. Die Variable GUI ist nicht initialisiert.

Du musst es entweder so machen
Code:
 public c_MainGUI GUI = new c_MainGUI();

Oder du musst, eine Instance irgendwie übergeben. Du hast vielleicht schon ein Object von dieser Klasse, aber wenn du dann eine neue Variable anlegst, ist nicht das bereits erstelle Object der neuen Variablen zugeordnet. Die haben dann nichts miteinander zu tun.

MFG

Sascha
 
1.) Klassennamen werden groß geschrieben
2.) Sichtbarkeitsmodifizierer verwenden
3.) Getter und Setter verwenden
4.) Der Code hilft nichts, da
4.a) Du uns nicht sagst wo die Exception geworfen wurde
4.b) Du uns nicht sagst, wo und was "eing_Id1" ist
4.c) Das selbe wie 4.b) für Netcomp
4.d) Du uns nicht sagst, wo du die GUI initialisierst
5.) Setzen, sechs!
 
Oke nun ruft es die Methode schonmal auf, danke :)

hab das new GUI(); irgendwie net gemacht, da ich vorher ne Exception hatte da es dann immer wieder new GUI(); und da dann new NetComp(); etc ^^

nun ist das Problem das es die Variable eing_Id1 als leer ausgibt also " ", obwohl ich dort eine Zahl eingetragen habe.
 
Sicher, dass du sich auch schon vor dem "Auslesen" mit einem Wert füllst? Ansonnsten müsstest du uns schon zeigen, wo und wie du mit umgehst.
 
Oke ich liste mal den kompletten Code

PHP:
import java.io.*;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author BDO
 */
public class c_NetworkComponents {

    public c_MainGUI GUI = new c_MainGUI();

    public void test() {
        System.out.println(GUI.eing_Id1.getText());
    }

}
Hier sind noch mehr Methoden drin, aber nicht ausschlaggebend für den Fehler.

c_MainGUI:
PHP:
import java.text.DateFormat;
import java.util.Locale;
import javax.swing.UIManager;



/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * c_MainGUI.java
 *
 * Created on 25.11.2008, 14:13:53
 */

/**
 *
 * @author BDO
 */
public class c_MainGUI extends javax.swing.JFrame {

    

    /** Creates new form c_MainGUI */
    public c_MainGUI() {
        initComponents();
    }
    c_NetworkComponents NetComp;


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
		//Hier wird das GUI initialisiert, poste ich hier nicht.
	}		


    private void but_erst1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        NetComp = new c_NetworkComponents(); // Hier wird die Methode aufgerufen
        NetComp.test();
        
	}
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (Exception e) {
            e.printStackTrace();
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new c_MainGUI().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    public javax.swing.JTabbedPane MainWindow;
    public javax.swing.JButton but_OK4;
    public javax.swing.JButton but_abbr1;
    public javax.swing.JButton but_abbr4;
    public javax.swing.JButton but_aendern4;
    public javax.swing.JButton but_del2;
    public javax.swing.JButton but_erst1;
    public javax.swing.JButton but_suchen3;
    public javax.swing.JTextField eing_Id1;
    public javax.swing.JTextField eing_Id2;
    public javax.swing.JTextField eing_Id4;
    public javax.swing.JCheckBox eing_betr1;
    public javax.swing.JCheckBox eing_betr4;
    public javax.swing.JTextField eing_bez1;
    public javax.swing.JTextField eing_bez4;
    public javax.swing.JComboBox eing_herst1;
    public javax.swing.JComboBox eing_herst4;
    public javax.swing.JFormattedTextField eing_inst1;
    public javax.swing.JFormattedTextField eing_inst4;
    public javax.swing.JTextField eing_ip1_1;
    public javax.swing.JTextField eing_ip1_2;
    public javax.swing.JTextField eing_ip1_3;
    public javax.swing.JTextField eing_ip1_4;
    public javax.swing.JTextField eing_ip4_1;
    public javax.swing.JTextField eing_ip4_2;
    public javax.swing.JTextField eing_ip4_3;
    public javax.swing.JTextField eing_ip4_4;
    public javax.swing.JComboBox eing_komp1;
    public javax.swing.JComboBox eing_komp4;
    public javax.swing.JTextField eing_lief1;
    public javax.swing.JTextField eing_lief4;
    public javax.swing.JTextField eing_ports1;
    public javax.swing.JTextField eing_ports4;
    public javax.swing.JFormattedTextField eing_rep1;
    public javax.swing.JFormattedTextField eing_rep4;
    public javax.swing.JTextField eing_sb3;
    public javax.swing.JTextField eing_sfr1;
    public javax.swing.JTextField eing_sfr4;
    public javax.swing.JTextField eing_stand1;
    public javax.swing.JTextField eing_stand4;
    public javax.swing.JComboBox eing_suchen3;
    public javax.swing.JFormattedTextField jFormattedTextField1;
    public javax.swing.JTabbedPane jTabbedPane1;
    public javax.swing.JPanel t_Aendern;
    public javax.swing.JPanel t_Loeschen;
    public javax.swing.JPanel t_Neu;
    public javax.swing.JPanel t_Suchen;
    public javax.swing.JLabel test_komp1;
    public javax.swing.JLabel text_Id1;
    public javax.swing.JLabel text_Id2;
    public javax.swing.JLabel text_Id4;
    public javax.swing.JLabel text_betr1;
    public javax.swing.JLabel text_betr4;
    public javax.swing.JLabel text_bez1;
    public javax.swing.JLabel text_bez4;
    public javax.swing.JLabel text_daten1;
    public javax.swing.JLabel text_daten4;
    public javax.swing.JLabel text_herst1;
    public javax.swing.JLabel text_herst4;
    public javax.swing.JLabel text_inst1;
    public javax.swing.JLabel text_inst4;
    public javax.swing.JLabel text_ip1;
    public javax.swing.JLabel text_ip4;
    public javax.swing.JLabel text_komp4;
    public javax.swing.JLabel text_lief1;
    public javax.swing.JLabel text_lief4;
    public javax.swing.JLabel text_ports1;
    public javax.swing.JLabel text_ports4;
    public javax.swing.JLabel text_preis1;
    public javax.swing.JLabel text_preis4;
    public javax.swing.JLabel text_rep1;
    public javax.swing.JLabel text_rep4;
    public javax.swing.JLabel text_sb3;
    public javax.swing.JLabel text_sfr1;
    public javax.swing.JLabel text_sfr4;
    public javax.swing.JLabel text_stand1;
    public javax.swing.JLabel text_stand4;
    public javax.swing.JLabel text_suchen3;
    public javax.swing.JLabel text_warn2_1;
    public javax.swing.JLabel text_warn2_2;
    public javax.swing.JLabel text_warn2_3;
    public javax.swing.JSeparator trenn_1;
    public javax.swing.JSeparator trenn_4;
    // End of variables declaration                   

}
 
Java:
        NetComp = new c_NetworkComponents(); // Hier wird die Methode aufgerufen
//Falsch! Oben wird sie erst einmal angelegt und initialisiert. In der nächsten Zeile wird eine Methode aufgerufen
        NetComp.test();
        
    //Das hier ist die einzige Stelle in deinem Code, wo eing_Id1 vorkommt. Du hast sie noch nicht initialisiert (new)!
    public javax.swing.JTextField eing_Id1;

Alles klar soweit?
 
Alles klar soweit?

im initComponents wirds sie schon initialisiert ( eing_Id1 = new javax.swing.JTextField(); )

//Edit:

Ich vermute mal es liegt daran, dass wenn ich ja c_NetComp aufrufe, initialisiert das c_MainGUI neu, daher ist dann die Variable wieder leer. Doch leider habe ich keine Idee wie ich dies umgehen kann.

//Edit2:

Wäre es sinnvoller wenn ich die Variablen beim Methoden aufruf übergebe, und nicht versuche sie in der Methode erst einzulesen ?
 
Zuletzt bearbeitet:
Konnte ich nicht wissen, da der Code-Teil fehlt.
Bist du auch sicher, das vor dem Ausführen der Test-Methode überhaupt Text im Textfeld steht?

Zu Edit1:
Das leert aber normalerweise nicht ein Textfeld

Zu Edit2:
Sorry, jetzt bin ich ein bischen verwirrt, was du meinst. Von welcher Methode sprichst du? Was meinst du mit einlesen?
 
Zuletzt bearbeitet:
Text steht ganz sicher drin. denn wen ich in der GUI Klasse vor dem Methodenaufruf, noch ein System.out.print(Id1.getText()); mache, wird die Zahl ausgegeben. Nur ob nach dem Aufruf der Methode der Text noch drin ist, das weiss ich nicht
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück