JavaFX "Framework" zur View Ersellung

GhostfaceChilla

Bekanntes Mitglied
Hallo Leute,
da ich in meinem Programm öfters mal einen neues Fenster erstellen muss und es sehr unschön finde, wenn die ganzen Parameter im Code stehen, habe ich mir was kleines geschrieben.

Java:
public class Login extends View{  }
Es muss immer eine Klasse existieren, die den selben Namen trägt, wie die FXML Datei und von der Klasse View abstammt

Java:
/**
 * Diese Klasse dient dazu, das laden der FXML und das erstellen der passenden
 * View zu automatisieren. 
 * 
 * @author Christian
 */
public abstract class View {
   
    private String fxmlName;
    private String windowName;
    private String modality;
    private boolean resizable;
    
    private static final String propertiesURL = "src/homenizer/view/view.properties";
    
    
    protected View() {
        try {
            loadProperties();
            init();
        } catch (Exception ex) {
            Logger.getLogger(View.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    private boolean wrapStringToBoolean(String prop) throws Exception{
        switch (prop) {
            case "true":
                return true;
            case "false":
                return false;
        }
        return true;
    }
    
    private void init() throws IOException{
        Parent root = FXMLLoader.load(getClass().getResource(fxmlName));
        Scene scene = new Scene(root);  
        Stage stage = new Stage();
        stage.setScene(scene);
        stage.setTitle(windowName);
        stage.setResizable(resizable);
        stage.initModality(Modality.valueOf(modality));
        stage.show();
        
        
    }
    
    /**
     * Diese Methode liest die Eigenschaften fxm-name , window-name, modality
     * in die entsprechenden Variablen.
     * @throws FileNotFoundException
     * @throws IOException 
     */
    private void loadProperties() throws FileNotFoundException, IOException, Exception{
        FileInputStream fis = new FileInputStream(new File(propertiesURL));
        Properties prop = new Properties();
        prop.load(fis);
        String prefix = getClass().getSimpleName().toLowerCase(); //Erfragen 
        //des Namens der Klasse
        fxmlName = prop.getProperty(prefix+"-fxml-name");
        windowName = prop.getProperty(prefix+"-window-name");
        modality = prop.getProperty(prefix+"-modality");
        resizable = wrapStringToBoolean(prop.getProperty(prefix+"-resizable"));
    }
    
}
Die View Klasse ist dafür zuständig, das neue Fenster zu erstellen.
Übergabeparemter stehen in einer .properties Datei, die Höhe und Breite des Fenster muss in der FXML Datei definiert werden, genauso wie Controller und .css Datei.


Code:
#Properties Datei für alle Views
#Namenskonvention:
#<classname><attribut>
#<attribut> = -fxml-name 
#             -window-name 
#             -modality

#Application
application-fxml-name = /homenizer/view/application/application.fxml
application-window-name = Homenizer
application-modality = NONE
application-resizable = true

#Login
login-fxml-name = /homenizer/view/login/login/login.fxml
login-window-name = Login
login-modality = APPLICATION_MODAL
login-resizable = false
Und so könnte die .properties Datei aussehen

Java:
@Override
    public void start(Stage primaryStage) throws IOException {
        try {
            ViewFactory.createView(homenizer.view.application.Application.class);
            ViewFactory.createView(Login.class);
        } catch (InstantiationException | IllegalAccessException ex) {
            Logger.getLogger(HomenizerApp.class.getName()).log(Level.SEVERE, null, ex);
Und so würde man das ganze aufrufen.

Was meint ihr dazu?Was könnte man noch besser machen, oder was würdet ihr noch anders machen?

-GhostfaceChilla-
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Ein Patten für das Gluon Mobile Framework AWT, Swing, JavaFX & SWT 7
C JavaFX GUI - Entscheidung über Framework AWT, Swing, JavaFX & SWT 4
W JavaFX GUI Test Framework AWT, Swing, JavaFX & SWT 4
G UI Framework AWT, Swing, JavaFX & SWT 10
windl Variables Framework AWT, Swing, JavaFX & SWT 6
J 2D-Grafik Simulationssoftware-Grafikf-Framework AWT, Swing, JavaFX & SWT 3
2 Modernes GUI Framework in JAVA vergleicbar mit WPF/Qt AWT, Swing, JavaFX & SWT 21
M GUI Framework? AWT, Swing, JavaFX & SWT 5
I GUI Builder? Framework? Per Hand? AWT, Swing, JavaFX & SWT 9
DEvent Swing Framework? AWT, Swing, JavaFX & SWT 8
F Swing Framework gesucht (Swing, Chart, "Scheduling" Grafik) AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
borobudur SWT SWT-Framework und Threads AWT, Swing, JavaFX & SWT 12
C Problem mit Swing Application Framework - Projekt beim AWT, Swing, JavaFX & SWT 2
D Suche Framework um Grafikprogramm zu schreiben. AWT, Swing, JavaFX & SWT 36
O Framework für SWT? AWT, Swing, JavaFX & SWT 2
V Framework zum Zeichnen/Malen? AWT, Swing, JavaFX & SWT 7
R Erfahrungen, Forum zu JSR 296 - Swing Application Framework AWT, Swing, JavaFX & SWT 5
P in Java Hilfeintrag erstellen - mit Framework? AWT, Swing, JavaFX & SWT 2
M zooming-Framework und doubleBuffering AWT, Swing, JavaFX & SWT 6
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
J Saubere Trennung Model, View, Controller Javafx AWT, Swing, JavaFX & SWT 10
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
ralfb1105 JavaFX Exception Message von Model Class via Controller in View darstellen AWT, Swing, JavaFX & SWT 39
S JavaFX Boolean ändern Table View AWT, Swing, JavaFX & SWT 14
M Swing MVC-Pattern - View mit mehreren Models AWT, Swing, JavaFX & SWT 5
M JavaFX - Array in View auslesen AWT, Swing, JavaFX & SWT 12
4a61766120617274697374 dynamische Tree View AWT, Swing, JavaFX & SWT 2
H JavaFX Ein View vorschalten Exception AWT, Swing, JavaFX & SWT 7
M SWT View nicht mehr sichtbar AWT, Swing, JavaFX & SWT 2
M JavaFX Image View Würfel berechnen AWT, Swing, JavaFX & SWT 3
K Panels mit eigenen Controllern in Main-View einbauen AWT, Swing, JavaFX & SWT 4
T View AccessibleContext AWT, Swing, JavaFX & SWT 0
S Swing Auf Änderungen eines Models in der View einer JTable reagieren AWT, Swing, JavaFX & SWT 1
S Swing JPanel in View ersetzen AWT, Swing, JavaFX & SWT 10
O Swing JTextField Sync View -> Model AWT, Swing, JavaFX & SWT 3
S View-Komponenten im Controller bekannt machen AWT, Swing, JavaFX & SWT 7
L View aus dem MVC ist immer die GUI? AWT, Swing, JavaFX & SWT 5
Nicklas2751 Table View zeigt keinen Inhalt nur leere Zeilen AWT, Swing, JavaFX & SWT 2
Rudolf Swing Baut die View die Modelebene auf oder wer? AWT, Swing, JavaFX & SWT 13
G Swing MVC / View - Controller AWT, Swing, JavaFX & SWT 7
N MVC - Logik zum Verändern der View AWT, Swing, JavaFX & SWT 8
V Eclipse View Right-Click Menu hinzufügen AWT, Swing, JavaFX & SWT 2
D Drag-Action: Innerhalb meiner View? AWT, Swing, JavaFX & SWT 3
C SWT-Elemente an View-Fenster angleichen und automatisch resizen AWT, Swing, JavaFX & SWT 3
G Swing Höhe des View eines JScrollPane fest auf Höhe des JScrollPane setzen! AWT, Swing, JavaFX & SWT 4
R Model View Controller Konzept AWT, Swing, JavaFX & SWT 2
R Swing Designfrage - Zusammenspiel Model / View AWT, Swing, JavaFX & SWT 10
J Swing SwingActions und das Problem auf den View bzw. das Model zuzugreifen AWT, Swing, JavaFX & SWT 2
D Swing JTable Model View Problem AWT, Swing, JavaFX & SWT 6
H shell in view implementieren; menu mit keystroke unterlegen AWT, Swing, JavaFX & SWT 8
M Swing Model an View binden AWT, Swing, JavaFX & SWT 4
M Swing Von einem Controller aus View-Elemente ändern AWT, Swing, JavaFX & SWT 11
H Swing JScrollPane mit JPanel als View AWT, Swing, JavaFX & SWT 3
B Sudokuartiger View (RadiobuttonTableView) mit JFace Viewer? AWT, Swing, JavaFX & SWT 3
N FileChooser in View AWT, Swing, JavaFX & SWT 3
F Swing J(X)Table Spalten umsortieren NUR im View (Wie finde ich eine Spalte nach Name?) AWT, Swing, JavaFX & SWT 3
hdi Swing JTable & Filtern: Daten nicht in der View AWT, Swing, JavaFX & SWT 2
B SWT Textdatei Lesen und Anzeige in View - Zeichensatzproblem AWT, Swing, JavaFX & SWT 4
D Design - View & Controller AWT, Swing, JavaFX & SWT 2
H Eclipse View / Window Layout AWT, Swing, JavaFX & SWT 3
N RCP/SWT View durch Programm auf 2. Bildschirm verschieben AWT, Swing, JavaFX & SWT 2
B view in andere View einbinden AWT, Swing, JavaFX & SWT 5
G RCP - SWT :: Scrollbars in einer View AWT, Swing, JavaFX & SWT 10
Zed JTable view auf Selection setzen AWT, Swing, JavaFX & SWT 2
R MVC: System.out.prinln in View umleiten geht nicht richtig AWT, Swing, JavaFX & SWT 7
K JSpinner - Model <-> View, unterschiedliche Werte AWT, Swing, JavaFX & SWT 9
E Mehrere Views in einer View AWT, Swing, JavaFX & SWT 3
TRunKX Ereignissweitergabe von Jlist.getSelected() aus der View AWT, Swing, JavaFX & SWT 7
P Verbindung View und Controller AWT, Swing, JavaFX & SWT 3
D Scrollbalken in einem View AWT, Swing, JavaFX & SWT 2
I Shell aus einer Plugin-View öffnen . AWT, Swing, JavaFX & SWT 4
B View zeichnet Daten aus dem Model ohne Update AWT, Swing, JavaFX & SWT 4
F MVC: Update von View und Controller AWT, Swing, JavaFX & SWT 5
S MVC - Neues Frame, neue View, neuer Controller? AWT, Swing, JavaFX & SWT 3
C Model View Controller - Beispielimplementation AWT, Swing, JavaFX & SWT 5
M SWT und Model View Controller? AWT, Swing, JavaFX & SWT 8
M auch JScrollPane aber mit Zoomen, wie wird der View gesetzt AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben