Was meinst Du mit zugreifen? Etwa aufrufen?Habe 2 Klassen. Wie kann ich von der einen Klasse B auf die Methode der anderen Klasse A zugreifen, wo die main ist?
public void setTextFieldInClassNewContact(int textFieldNummber, String string)
{
textField[textFieldNummber].setText(string);
}
public void setConnectionToDatabase()
{
try
{
Class.forName(treiberName);
NewContact.setTextFieldInClassNewContact(7, "driver found");//Fehler --> can not make a non static ...wenn mit NewContact.set...
//NewContact = Klasse A
}
catch(ClassNotFoundException cl)
{
System.out.println("Verbindung konnte nicht erstellt werden!");
}
das war mir bewusst. deshalb geht es ja mit "classA.get...();" nichtNicht statische Methoden kannst Du an einem Objekt der Klasse aufrufen, statische direkt über die Klasse.
public static void setTextFieldInClassNewContact(int textFieldNummber, String string)
ClassA foo = new ClassA();
foo.setTextFieldInClassNewContact(int textFieldNummber, String string)
if(x == 4)
{
button[x].addActionListener(new ActionEventClassNewConect(this));//<-- ActionEventClassNewConect(this) in einem anderen Paket.
button[x].setActionCommand("datenZeigen");
public class Klasse_B{
Klasse_A an = new Klasse_A();
public Klasse_B
{;
}
public void setConnectionToDatabase()
{
try
{
Class.forName(treiberName);
an.setTextFieldInClassNewContact(7, "Treiber gefunden");
//Noch eine Ausgabe schreiben
}
catch(ClassNotFoundException cl)
{
System.out.println("Verbindung konnte nicht erstellt werden!");
}
}
NEIN!!class B extends A
hat aber nichts mit saubererer Objektorientierten Programmierung zu tun!einfach wäre, die Methode in Klasse A static zu machen!
public class B {
private A a; // das a kann jetzt überall in der klasse B verwendet werden
public B(A a){
this.a = a;
}
}
public class A {
public void methodeMachtWasMitB(){
B b = new B(this);//ich gebe mich (Instanz von A) einfach mit
b.machWas();
}
//oder
public static void main(String[] args) {
A a = new A();
B b = new B(a);
b.machWas();
}
}
Genauer Wortlaut der Fehlermeldung? In welcher Klasse und welcher Zeile tritt sie auf?das Ergebnis ist "NullPinterException"
public void setTextFieldInClassA(int textFieldNummber, String string)
{
textField[textFieldNummber].setText(string);
}
if(x == 1)
{
button[x].addActionListener(new ActionEventClassNewContact(this));
button[x].setActionCommand("v");
public static void main(String[] args)
Klasse A frame = new A();
Klasse B b = new B(frame);
public class B{
(private) A a;
public B(A a)
{
this.a = a;
}...
public void setConnectionToDatabase()
{
try
{
Class.forName(treiberName);
a.setTextFieldInClassA(10, "Mein Name ist Hase");//<--Hier bekekomme ich eine "nullPointerException"??? Warum???
}
catch(ClassNotFoundException cl)
{
System.out.println("Verbindung konnte nicht erstellt werden!");
}}
public class C{
A a;
B b = new B();
public ActionEventClassNewContact(A a)
{
this.a = a;
}
if(button.getActionCommand() == "v")//Klasse A
{
b.setConnectionToDatabase();
a.setTextFieldInClassA(10, "Schreiben");//a aus Klasse A
}
Genauer Wortlaut der Fehlermeldung? In welcher Klasse und welcher Zeile tritt sie auf?
Vermutlich ist in KlasseA etwas noch nicht instanziert
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at adressen.KlasseB.setConnectionToDatabase(KlasseB.java:66)
at eventKlassen.KLasseC.actionPerformed(KlasseC.java:59)
a.setTextFieldInClassA(10, "Mein Name ist Hase");
public class B{
(private) A a;
public B(A a)
{
this.a = a;
}...
public void referenzAufnehmen(NewContact newCon)//<--Neue Methode
{
this.n = newCon;
}
public void setConnectionToDatabase()
{
try
{
Class.forName(treiberName);
a.setTextFieldInClassA(10, "Mein Name ist Hase");//<--Hier bekekomme ich eine "nullPointerException"??? Warum???
}
catch(ClassNotFoundException cl)
{
System.out.println("Verbindung konnte nicht erstellt werden!");
}}
public class C{
A a;
B b = new B();
public ActionEventClassNewContact(A a)
{
this.a = a;
}
if(button.getActionCommand() == "v")//Klasse A
{
b.referenzAufnehmen(a);
b.setConnectionToDatabase();
a.setTextFieldInClassA(10, "Schreiben");//a aus Klasse A
}