Grafische Oberfläche Quellcode ändern

struppi79

Mitglied
HAllo Ihr alle 🙂
ich habe einen quellcode eines Mainprogramms der in Netbeans als grafische Oberfläche erstelltr wurde. Wir sollen diese Grafische "bedienmöglichkeit" nun wieder rausnehmen. Ich tu mir aber zugegeben sehr hart :noe:. Venetuell könnt Ihr mir helfen?

Dankeschön 😀
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Vokabeltrainer.java
 *
 * Created on 17.06.2010, 14:15:39
 */
import java.io.*;
import javax.swing.*;

/**
 *
 * @author chelfer
 */
public class Vokabeltrainer extends javax.swing.JFrame {

    VokabelList liste = new VokabelList();
    int zaehler_woerter = 0;
    int i = 0;
    Vokabel randomvok;

    /** Creates new form Vokabeltrainer */
    public Vokabeltrainer() {
        initComponents();
        jLabel5.setVisible(false);
        jLabel6.setVisible(false);
        jLabel7.setVisible(false);
        jTextField2.setVisible(false);
        jButtonLernenWeiter.setVisible(false);
        lbl_wort1.setVisible(false);
        lbl_wort2.setVisible(false);
        jLabel10.setVisible(false);
        jButtonTestStarten.setVisible(false);
        jRadioButton1.setSelected(true);
        jButton_exitTest.setVisible(false);
        jLabel11.setVisible(false);
        jLabel12.setVisible(false);
        jLabel13.setVisible(false);
        jLabel14.setVisible(false);
        jLabel15.setVisible(false);
        jLabel16.setVisible(false);
        Label_treffer.setVisible(false);
        txt_wort1.setVisible(false);
        txt_wort2.setVisible(false);
        jRadioButton1.setEnabled(false);
        jRadioButton2.setEnabled(false);
    }

    /** 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() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButtonLaden = new javax.swing.JButton();
        jLabel17 = new javax.swing.JLabel();
        jButtonTest = new javax.swing.JButton();
        jButtonLernen = new javax.swing.JButton();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        jLabel7 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        Label_treffer = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jTextField2 = new javax.swing.JTextField();
        jButtonTestStarten = new javax.swing.JButton();
        jLabel10 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        lbl_wort1 = new javax.swing.JLabel();
        lbl_wort2 = new javax.swing.JLabel();
        txt_wort1 = new javax.swing.JTextField();
        txt_wort2 = new javax.swing.JTextField();
        jButtonLernenWeiter = new javax.swing.JButton();
        jButton_exitTest = new javax.swing.JButton();
        jLabel11 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        lbl_anz = new javax.swing.JLabel();
        bt_beenden = new javax.swing.JButton();
        jSeparator1 = new javax.swing.JSeparator();
        jSeparator2 = new javax.swing.JSeparator();
        jSeparator3 = new javax.swing.JSeparator();
        jSeparator4 = new javax.swing.JSeparator();
        lbl_testergebnis = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, new java.awt.Color(212, 41, 41)));

        jLabel1.setBackground(java.awt.Color.red);
        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel1.setForeground(new java.awt.Color(255, 51, 0));
        jLabel1.setText("Vokabeltrainer");

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel3.setText("Datei laden");

        jLabel2.setText("Pfad");

        jTextField1.setText("f:/Programmieren/test.csv");

        jButtonLaden.setText("Datei Laden");
        jButtonLaden.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonLadenActionPerformed(evt);
            }
        });

        jLabel17.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel17.setText("Art des Tests wählen");

        jButtonTest.setText("Test");
        jButtonTest.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTestActionPerformed(evt);
            }
        });

        jButtonLernen.setText("Lernen");
        jButtonLernen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonLernenActionPerformed(evt);
            }
        });

        buttonGroup1.add(jRadioButton1);
        jRadioButton1.setText("Deutsch <> Englisch");
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1ActionPerformed(evt);
            }
        });

        buttonGroup1.add(jRadioButton2);
        jRadioButton2.setText("Englisch <> Deutsch");
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton2ActionPerformed(evt);
            }
        });

        jLabel7.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel7.setText("Testen");

        jLabel5.setText("Hier Wort eingeben");

        Label_treffer.setText("Treffer");

        jLabel4.setText("Wort1");

        jTextField2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField2ActionPerformed(evt);
            }
        });

        jButtonTestStarten.setText("Starten");
        jButtonTestStarten.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTestStartenActionPerformed(evt);
            }
        });

        jLabel10.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel10.setForeground(new java.awt.Color(255, 0, 0));
        jLabel10.setText("jLabel10");

        jLabel6.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel6.setText("Lernen");

        lbl_wort1.setText("Deutsch");

        lbl_wort2.setText("Englisch");

        txt_wort1.setText("jTextField3");

        txt_wort2.setText("jTextField4");

        jButtonLernenWeiter.setText("weiter");
        jButtonLernenWeiter.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonLernenWeiterActionPerformed(evt);
            }
        });

        jButton_exitTest.setText("Test Beenden");
        jButton_exitTest.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_exitTestActionPerformed(evt);
            }
        });

        jLabel11.setText("Anzahl Fehler");

        jLabel12.setText("Anzahl Treffer");

        jLabel13.setText("Anzahl Wörter");

        jLabel14.setText("jLabel14");

        jLabel15.setText("jLabel15");

        jLabel16.setText("jLabel16");

        bt_beenden.setText("Programm beenden");
        bt_beenden.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_beendenActionPerformed(evt);
            }
        });

.......        );

        pack();
    }// </editor-fold>                        

    private void jButton_exitTestActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        jLabel11.setVisible(true);
        jLabel12.setVisible(true);
        jLabel13.setVisible(true);
        jLabel14.setVisible(true);
        jLabel15.setVisible(true);
        jLabel16.setVisible(true);
        jLabel14.setText("" + Vokabel.fehler);  //Testergebnis Anzahl fehler
        jLabel15.setText("" + Vokabel.richtig); //Testergenmis Anzahl richtig
        jLabel16.setText(Vokabel.fehler + Vokabel.richtig + "");

        Vokabel.fehler = 0;
        Vokabel.richtig = 0;

}                                                

    private void jButtonLernenWeiterActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        jButtonLernenWeiter.setText("Weiter>>>");
        lbl_anz.setVisible(false);
        txt_wort1.setVisible(true);
        txt_wort2.setVisible(true);
        txt_wort1.setEditable(false);
        txt_wort2.setEditable(false);
        if (i < liste.size()) {
            Vokabel tmp = liste.get(i); //hohlt der Reihe nach Vokabeln aus
            lbl_wort1.setText("Deutsch"); //der ArrayList
            lbl_wort2.setText("Englisch");
            txt_wort1.setText(tmp.getvokabeldeutsch());
            txt_wort2.setText(tmp.getvokabelenglisch());
            jRadioButton1.setEnabled(false);
            jRadioButton2.setEnabled(false);
            i++;
        } else {
            i = 0;  // Fängt von vorne wieder an
        }

}                                                   

    private void jButtonTestStartenActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        jButtonTestStarten.setText("Weiter>>>");
        lbl_anz.setVisible(false);
        jLabel5.setVisible(true);
        jButtonTestStarten.setText("weiter>>");
        jRadioButton1.setEnabled(false);
        jRadioButton2.setEnabled(false);
        randomvok = liste.getRandomVokabel();   //hohlt Zufalls Vokabel
        if (randomvok != null) {
            if (jRadioButton1.isSelected()) {   //Richtung Deutsch<>Englisch
                jLabel4.setText(randomvok.deutsch);
            } else {                            //Richtung Englisch<>Deutsch
                jLabel4.setText(randomvok.englisch);
            }
            jLabel10.setVisible(false);
            //Label_treffer.setText("" + randomvok.anz_treffer);
        } else {
            //Label_treffer.setText("Ende");
            jButtonTestStarten.setEnabled(false);
            jTextField2.setEnabled(false);
            jLabel11.setVisible(true);
            jLabel12.setVisible(true);
            jLabel13.setVisible(true);
            jLabel14.setVisible(true);
            jLabel15.setVisible(true);
            jLabel16.setVisible(true);
            jLabel14.setText("" + Vokabel.fehler);  //Testergebnis Anzahl fehler
            jLabel15.setText("" + Vokabel.richtig); //Testergenmis Anzahl richtig
            jLabel16.setText(Vokabel.fehler + Vokabel.richtig + "");
            jTextField2.setEditable(false);
            Vokabel.fehler = 0;
            Vokabel.richtig = 0;
            jButton_exitTest.setEnabled(false);


        }
        jButtonTestStarten.setEnabled(false);

}                                                  

    private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
}                                             

    private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
}                                             

    private void jButtonTestActionPerformed(java.awt.event.ActionEvent evt) {                                            
        jLabel4.setVisible(true);
        jLabel5.setVisible(true);
        jLabel7.setVisible(true);
        jButtonLernenWeiter.setVisible(false);
        jTextField2.setVisible(true);
        jButtonTestStarten.setVisible(true);
        jLabel6.setVisible(false);
        lbl_wort1.setVisible(false);
        lbl_wort2.setVisible(false);
        jRadioButton1.setEnabled(true);
        jRadioButton2.setEnabled(true);
        jButton_exitTest.setVisible(true);
        txt_wort1.setVisible(false);
        txt_wort2.setVisible(false);
        jSeparator1.setVisible(true);
        jSeparator2.setVisible(true);
        jSeparator3.setVisible(false);

}                                           

    private void jButtonLernenActionPerformed(java.awt.event.ActionEvent evt) {                                              
        jLabel6.setVisible(true);
        lbl_wort1.setVisible(true);
        lbl_wort2.setVisible(true);
        jButtonLernenWeiter.setVisible(true);
        jLabel4.setVisible(false);
        jButtonTestStarten.setVisible(false);
        jLabel5.setVisible(false);
        jLabel7.setVisible(false);
        jTextField2.setVisible(false);
        jButtonLernenWeiter.setText("Starten");
        jButton_exitTest.setVisible(false);
        jSeparator2.setVisible(false);
        lbl_testergebnis.setVisible(false);

        // TODO add your handling code here:
    }                                             

    private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {                                            
//        ImageIcon right = new ImageIcon("f:/Programmieren/right.gif");
//        ImageIcon failure = new ImageIcon("f:/Programmieren/failure.gif");
        jLabel10.setVisible(true);
        String test = jTextField2.getText();
        if (jRadioButton1.isSelected()) {    //Deutsch<>Englisch
            if (randomvok.testEqualVokabelEnglish(randomvok, test)) {
                jLabel10.setVisible(true);
//                jLabel10.setIcon(right);
                jLabel10.setText("richtig");
            } else {
                jLabel10.setVisible(true);
//                jLabel10.setIcon(failure);
                jLabel10.setText("falsch");
            }
        } else {
            if (randomvok.testEqualVokabelGerman(randomvok, test)) {
                jLabel10.setVisible(true);
//                jLabel10.setIcon(right);
                jLabel10.setText("richtig");
            } else {
                jLabel10.setVisible(true);
//                jLabel10.setIcon(failure);
                jLabel10.setText("falsch");
            }
        }
        jButtonTestStarten.setEnabled(true);
       
}                                           

    private void jButtonLadenActionPerformed(java.awt.event.ActionEvent evt) {                                             

        String pfad = jTextField1.getText();
        int anz_woerter = 0;
        String zeile;
        File Datei = new File(pfad);
        // if (Datei.exists()) {
        try {
            FileReader fr = new FileReader(Datei);
            BufferedReader br = new BufferedReader(fr);
            while (br.ready()) {
                zeile = br.readLine();
                Vokabel vokabel = new Vokabel(zeile);
                liste.add(vokabel); //vokabelobjekt in ArrayList hinzufügen
                anz_woerter++;
            }
            //lbl_anz.setText("" + anz_woerter + "    Vokabeln wurden geladen");
            ImageIcon a = new ImageIcon("f:/Programmieren/ok.gif");
            lbl_anz.setIcon(a);

            br.close();
            fr.close();

        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "FILE NOT FOUND",
                    "ERROR", JOptionPane.ERROR_MESSAGE);

        }
}                                            

    private void bt_beendenActionPerformed(java.awt.event.ActionEvent evt) {                                           
        dispose();      // Beendet das Programm

    }                                          

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Vokabeltrainer().setVisible(true);
            }
        });
    }
                
}
 
Wir sollen diese Grafische "bedienmöglichkeit" nun wieder rausnehmen.
Und wie soll das ganze dann bedient werden? Durch eine andere GUI?
Da hier bei der Implementierung nicht sauber zwischen GUI und Controller (Model existiert gar nciht) getrennt wurde, wird es schwierig den GUI Anteil rauszunehmen, so dass noch was sinnvolles übrigbleibt.
Prinzipiell müsst man "einfach" nur die Methode initComponents() komplett rausschmeißen und aus den anderen xxxActionPerformed - Methoden den GUI Anteil. ... Aber was bleibt dann übrig?
 
hm glaube eher nicht ....

Dann versuch ichs nochmal was mein Vorredner ja schon gesagt hat:

In deinem Programm ist GUI mit Logik (das was passiert) und den Daten komplett vermischt. Da nimmst du keine GUI raus, weil dann hast du kein Programm mehr.

Normalerweise trennt man Anwendungsdaten (Modell) von der Logik (Controller) und das wiederum von der Darstellung (View), nennt man auch MVC Muster (Guck halt mal bei Wikipedia nach). Davon gibts zig Variationen. Allen gemeinsam ist aber, dass Darstellung strikt von den Daten getrennt ist.

DA kann man dann die Darstellung tauschen. z.B. GUI gegen Konsole.

Bei dir geht das nicht. Da musste alles im Prinzip umprogrammieren. Da fängst du besser gleich neu an.
 

Zurück
Oben