Anzeige

JavaFXML Vererbung


#1
Hallo liebe Community,

ich schreibe gerade ein Programm und habe ein Klasse HauptMenuController. Darauf befindet sich ein protected objekt meiner anderen Klasse Datenbank(Enthält nur ein paar Methoden und Strings für die MS Access). Das Objekt wird mit null initialisiert, jedoch nach dem start sofort mit einen Konstruktor konstruiert. Ich möchte mit einer anderen Klasse auf mein bestehendes Objekt zugreifen, dabei gibt es den begriff super . Leider wird immer wieder auf den neuen Controller ein leeres Objekt angezeigt, obwohl es doch von der Oberklasse erbt?

Wie kann ich darauf zugreifen? Ich denke das Problem liegt bei dem FXMLLoader irgendwo...

Java:
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

/**
 *
 * @author
 */
public class haupmenuController implements Initializable {
    
    @FXML
    private Label status;

    protected Datenbank datenbank;
    
    public void Personenerfassung() throws IOException
    {
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Personerfassenfx.fxml"));
            Parent root = (Parent) fxmlLoader.load();
            
            Stage stage = new Stage();
            stage.setResizable(false);
            stage.setScene(new Scene(root));
            stage.setTitle("Person erfassen");
            stage.show();
    }
    

       @Override
    public void initialize(URL url, ResourceBundle rb) {
            this.datenbank = new Datenbank("C:/kontakte.mdb");
         if (datenbank.testeVerbindung())
           {status.setStyle("-fx-text-fill: green;");
            status.setText("Verbunden");}
         else{
            status.setStyle("-fx-text-fill: red;");
            status.setText("Nicht Verbunden");}
            System.out.println(datenbank.getDatenbank());
    }   
    
    public Datenbank getDatenbank(){
        return datenbank;
    }
}
Bei der anderen Klasse möchte initialize zugreifen

Java:
public class PersonerfassenfxController extends haupmenuController implements Initializable {
public void initialize(URL url, ResourceBundle rb) {
        geschlecht.getItems().addAll("Männlich","Weiblich");
        System.out.print(super.getDatenbank());
        
    }}
 
#2
Hallo liebe Community,

ich schreibe gerade ein Programm und habe ein Klasse HauptMenuController. Darauf befindet sich ein protected objekt meiner anderen Klasse Datenbank(Enthält nur ein paar Methoden und Strings für die MS Access). Das Objekt wird mit null initialisiert, jedoch nach dem start sofort mit einen Konstruktor konstruiert. Ich möchte mit einer anderen Klasse auf mein bestehendes Objekt zugreifen, dabei gibt es den begriff super . Leider wird immer wieder auf den neuen Controller ein leeres Objekt angezeigt, obwohl es doch von der Oberklasse erbt?

Wie kann ich darauf zugreifen? Ich denke das Problem liegt bei dem FXMLLoader irgendwo...

Java:
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

/**
*
* @author
*/
public class haupmenuController implements Initializable {
  
    @FXML
    private Label status;

    protected Datenbank datenbank;
  
    public void Personenerfassung() throws IOException
    {
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Personerfassenfx.fxml"));
            Parent root = (Parent) fxmlLoader.load();
          
            Stage stage = new Stage();
            stage.setResizable(false);
            stage.setScene(new Scene(root));
            stage.setTitle("Person erfassen");
            stage.show();
    }
  

       @Override
    public void initialize(URL url, ResourceBundle rb) {
            this.datenbank = new Datenbank("C:/kontakte.mdb");
         if (datenbank.testeVerbindung())
           {status.setStyle("-fx-text-fill: green;");
            status.setText("Verbunden");}
         else{
            status.setStyle("-fx-text-fill: red;");
            status.setText("Nicht Verbunden");}
            System.out.println(datenbank.getDatenbank());
    } 
  
    public Datenbank getDatenbank(){
        return datenbank;
    }
}
Bei der anderen Klasse möchte initialize zugreifen

Java:
public class PersonerfassenfxController extends haupmenuController implements Initializable {
public void initialize(URL url, ResourceBundle rb) {
        geschlecht.getItems().addAll("Männlich","Weiblich");
        System.out.print(super.getDatenbank());
      
    }}
Generell kommt immer null dabei raus und bei dem ursprünglichen Objekt jedoch nicht...
 
Anzeige
Anzeige