Erste Schritte Einfaches Programm und GUI zusammen bringen

hfkgwlsl

Neues Mitglied
Hallo,

ich möchte aus einem eig. schon fertigen Programm abgespeicherte "Arbeiten" in einer LinkedList mit mehreren Variblen in einer GUI anzeigen und bearbeiten können.
Jedoch scheitere ich schon an der JList.
BVerwaltungUI wird der main Klasse instanziert und guierstellen aufgerufen.
Die Arbeiten sind abgespeichert mit Format:

ID: 0
Vorname Nachname - Thema
Kurs
Jahr

Firmendaten werden in einer extra LinkedList behandelt.

Java:
LArbeiten.setListData(BVerwaltung.arbeiten.toArray());
funktioniert bei mir nicht.

Java:
public class BVerwaltungUI extends javax.swing.JFrame {

    public BVerwaltungUI() {
        initComponents();
    }
    @SuppressWarnings("unchecked")                       
    private void initComponents() {

        PBachelordaten = new javax.swing.JPanel();
        LTitel = new javax.swing.JLabel();
        LTitelID = new javax.swing.JLabel();
        LFirmenID = new javax.swing.JLabel();
        LKurs = new javax.swing.JLabel();
        LErstellungsjahr = new javax.swing.JLabel();
        LAutor = new javax.swing.JLabel();
        TFTitel = new javax.swing.JTextField();
        TFTitelID = new javax.swing.JTextField();
        TFFirmenID = new javax.swing.JTextField();
        TFKurs = new javax.swing.JTextField();
        TFErstellungsjahr = new javax.swing.JTextField();
        TFAutor = new javax.swing.JTextField();
        PFirmendaten = new javax.swing.JPanel();
        TFFirmenname = new javax.swing.JTextField();
        TFFirmenID2 = new javax.swing.JTextField();
        TFStandort = new javax.swing.JTextField();
        LFirmenname = new javax.swing.JLabel();
        LFirmenID2 = new javax.swing.JLabel();
        LStandort = new javax.swing.JLabel();
        BNeu = new javax.swing.JButton();
        SPArbeiten = new javax.swing.JScrollPane();
        LArbeiten = new javax.swing.JList();
        BAnzeigen = new javax.swing.JButton();
        BLöschen = new javax.swing.JButton();
        BAendern = new javax.swing.JButton();
        PSocket = new javax.swing.JPanel();
        BDownload = new javax.swing.JButton();
        BUpload = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Projekt IT11");

        PBachelordaten.setBorder(javax.swing.BorderFactory.createTitledBorder("Bachelorarbeits-Daten"));
        PBachelordaten.setToolTipText("");

        LTitel.setText("Titel:");

        LTitelID.setText("TitelID:");

        LFirmenID.setText("FirmenID:");

        LKurs.setText("Kurs:");

        LErstellungsjahr.setText("Erstellungsjahr:");

        LAutor.setText("Autor:");

        javax.swing.GroupLayout PBachelordatenLayout = new javax.swing.GroupLayout(PBachelordaten);
        PBachelordaten.setLayout(PBachelordatenLayout);
        PBachelordatenLayout.setHorizontalGroup(
            PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PBachelordatenLayout.createSequentialGroup()
                .addGroup(PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, PBachelordatenLayout.createSequentialGroup()
                        .addGap(23, 23, 23)
                        .addComponent(LFirmenID)
                        .addGap(18, 18, 18)
                        .addComponent(TFFirmenID, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, PBachelordatenLayout.createSequentialGroup()
                        .addGap(35, 35, 35)
                        .addGroup(PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(PBachelordatenLayout.createSequentialGroup()
                                .addComponent(LTitel)
                                .addGap(18, 18, 18)
                                .addComponent(TFTitel, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(PBachelordatenLayout.createSequentialGroup()
                                .addComponent(LTitelID)
                                .addGap(18, 18, 18)
                                .addComponent(TFTitelID, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                .addGap(18, 18, 18)
                .addGroup(PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(LKurs, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(LErstellungsjahr, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(LAutor, javax.swing.GroupLayout.Alignment.TRAILING))
                .addGap(18, 18, 18)
                .addGroup(PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(TFKurs, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFErstellungsjahr, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFAutor, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        PBachelordatenLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {TFAutor, TFErstellungsjahr, TFFirmenID, TFKurs, TFTitel, TFTitelID});

        PBachelordatenLayout.setVerticalGroup(
            PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PBachelordatenLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(LTitel)
                    .addComponent(LKurs)
                    .addComponent(TFTitel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFKurs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(LTitelID)
                    .addComponent(LErstellungsjahr)
                    .addComponent(TFTitelID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFErstellungsjahr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(PBachelordatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(LFirmenID)
                    .addComponent(LAutor)
                    .addComponent(TFFirmenID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFAutor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        PBachelordatenLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {TFAutor, TFErstellungsjahr, TFFirmenID, TFKurs, TFTitel, TFTitelID});

        PFirmendaten.setBorder(javax.swing.BorderFactory.createTitledBorder("Firmen-Daten"));

        LFirmenname.setText("Firmenname:");

        LFirmenID2.setText("FirmenID:");

        LStandort.setText("Standort:");

        BNeu.setText("Neue Arbeit erfassen");

        javax.swing.GroupLayout PFirmendatenLayout = new javax.swing.GroupLayout(PFirmendaten);
        PFirmendaten.setLayout(PFirmendatenLayout);
        PFirmendatenLayout.setHorizontalGroup(
            PFirmendatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PFirmendatenLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(PFirmendatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(LFirmenname)
                    .addComponent(LFirmenID2))
                .addGap(18, 18, 18)
                .addGroup(PFirmendatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(TFFirmenname, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFFirmenID2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(47, 47, 47)
                .addGroup(PFirmendatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(PFirmendatenLayout.createSequentialGroup()
                        .addComponent(LStandort)
                        .addGap(18, 18, 18)
                        .addComponent(TFStandort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(BNeu, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        PFirmendatenLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {TFFirmenID2, TFFirmenname, TFStandort});

        PFirmendatenLayout.setVerticalGroup(
            PFirmendatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PFirmendatenLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(PFirmendatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(TFFirmenname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFStandort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(LFirmenname)
                    .addComponent(LStandort))
                .addGap(19, 19, 19)
                .addGroup(PFirmendatenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(TFFirmenID2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(LFirmenID2)
                    .addComponent(BNeu))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        PFirmendatenLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {TFFirmenID2, TFFirmenname, TFStandort});

        LArbeiten.setBorder(javax.swing.BorderFactory.createTitledBorder("Bachelor-Arbeiten"));
        LArbeiten.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        LArbeiten.setToolTipText("");
        LArbeiten.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        SPArbeiten.setViewportView(LArbeiten);

        BAnzeigen.setText("Anzeigen");

        BLöschen.setText("Löschen");

        BAendern.setText("Ändern");

        PSocket.setBorder(javax.swing.BorderFactory.createTitledBorder("Serveranbindung"));

        BDownload.setText("Herunterladen");

        BUpload.setText("Raufladen");

        javax.swing.GroupLayout PSocketLayout = new javax.swing.GroupLayout(PSocket);
        PSocket.setLayout(PSocketLayout);
        PSocketLayout.setHorizontalGroup(
            PSocketLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PSocketLayout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addComponent(BDownload, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(BUpload, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        PSocketLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {BDownload, BUpload});

        PSocketLayout.setVerticalGroup(
            PSocketLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PSocketLayout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addGroup(PSocketLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(BDownload)
                    .addComponent(BUpload))
                .addGap(0, 0, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(PBachelordaten, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(PFirmendaten, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(SPArbeiten)
                    .addComponent(PSocket, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(BAnzeigen, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(BLöschen, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(BAendern, javax.swing.GroupLayout.Alignment.TRAILING))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {BAendern, BAnzeigen, BLöschen});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(PBachelordaten, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(PFirmendaten, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(BAnzeigen)
                        .addGap(18, 18, 18)
                        .addComponent(BLöschen)
                        .addGap(18, 18, 18)
                        .addComponent(BAendern))
                    .addComponent(SPArbeiten, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(PSocket, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }                       
    public static void guierstellen() {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(BVerwaltungUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(BVerwaltungUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(BVerwaltungUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(BVerwaltungUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new BVerwaltungUI().setVisible(true);
            }
        });
    }                  
    private javax.swing.JButton BAendern;
    private javax.swing.JButton BAnzeigen;
    private javax.swing.JButton BDownload;
    private javax.swing.JButton BLöschen;
    private javax.swing.JButton BNeu;
    private javax.swing.JButton BUpload;
    private javax.swing.JList LArbeiten;
    private javax.swing.JLabel LAutor;
    private javax.swing.JLabel LErstellungsjahr;
    private javax.swing.JLabel LFirmenID;
    private javax.swing.JLabel LFirmenID2;
    private javax.swing.JLabel LFirmenname;
    private javax.swing.JLabel LKurs;
    private javax.swing.JLabel LStandort;
    private javax.swing.JLabel LTitel;
    private javax.swing.JLabel LTitelID;
    private javax.swing.JPanel PBachelordaten;
    private javax.swing.JPanel PFirmendaten;
    private javax.swing.JPanel PSocket;
    private javax.swing.JScrollPane SPArbeiten;
    private javax.swing.JTextField TFAutor;
    private javax.swing.JTextField TFErstellungsjahr;
    private javax.swing.JTextField TFFirmenID;
    private javax.swing.JTextField TFFirmenID2;
    private javax.swing.JTextField TFFirmenname;
    private javax.swing.JTextField TFKurs;
    private javax.swing.JTextField TFStandort;
    private javax.swing.JTextField TFTitel;
    private javax.swing.JTextField TFTitelID;                
}

Kompiliert:
http://img6.imagebanana.com/img/akz9kghp/Unbenannt.jpg
 
Ich weiß nicht wie weit das bei diesen Ding (bei "Source" musste ich einfach zu viel lachen) möglich ist, aber übergib doch per Konstruktor ein Model, in das du die Daten schreibst. In der Implementierung schreibst du es dann in eine Liste oder machst was auch immer du machen willst (was ja der Vorteil eines Interfaces ist). Oder von der du die Daten bekommst.
 
Funktioniert nicht ist eine sehr genau Fehlerbeschreibung, meine Glaskugel sagt dazu:
- Der Kompiler könnte motzen wegen RawType, wenn du schon Java7 verwendest, was du aber nicht tust
- Es könnte in der GUI nichts angezeigt werden, weil die Liste leer sein könnte
- Es könnte eine NPE fliegen, weil die List noch nicht initialisiert wurde

Der Klasse mit der Liste und eine genauere Fehlerbescheibung wären also hilfreich.
Und zu deinem Code: Das ist schreklich zu lesen. Hast du noch nichts von import's gehört? Und man kann den Text Komponenten auch direkt im Konstruktor übergeben.
 
Für mich klingt es eher als ob er eine GUI in Netbean (hab soetwas ähnliches bei dem man sich fragt ob es Verletzte gab als die Bombe im Code eingeschlagen hat erst vor kurzen gesehen) zusammengeklickt hat um zu sagen das er etwas programmiert hat, und nun keine Ahnung hat, wie er damit was anfängt.
 

Neue Themen


Zurück
Oben