GUI- Klasse mit Hauptklasse "verknüpfen"?

babuschka

Top Contributor
Hallo Zusammen,
Ich bin noch recht neu mit JAVA beschäftigt und habe nun meine erste GUI zu erstellen...
Das Programm welches "dargestellt" werden soll existiert und funktioniert und besteht aus mehreren Klassen. Für die GUI hatte ich nun geplant eine neue Klasse hinzuzufügen und bin auch eigentlich ganz zufrieden mit dem Ergebnis. Wo ich nun allerdings nicht hinterherkomme ist der Versuch, ActionListener zu integrieren. Ich möchte die Ausgabe eines Array in einem "Anzeigefenster" gestalten und mit Buttons dann den Array sortieren. Ich glaube die Buttons hinzukriegen, allerdings habe ich keinen Plan wie ich die Anzeige in ein "Anzeigefenster" kriege?:bahnhof:
Das ganze ist ein BlueJ- Projekt und die Ausgabe lief bisher auf dem "Canvas"- Fenster was ja bei BlueJ automatisch mit dabei ist und funktioniert...
Hat Jemand eine Idee wo mein Problem liegen könnte? Ich wäre super dankbar über einen Tipp wo ich mich mal einstudieren sollte! Ich würde das ganz gerne allein hinkriegen, fühle mich aber grad auf der Suche nach der berühmten Nadel im Heuhaufen... Falls dies hilfreich ist kann ich auch gerne Code posten... Danke schonmal im voraus!
 

Alexiios

Mitglied
Wenn ich dein Problem richtig verstehe würde ich es mit einem JTextField oder auch JLabel realisieren und dann mit der Methode .setText deinen String reinsetzen...
 
Zuletzt bearbeitet:

babuschka

Top Contributor
Hallo Alexiios!
Ich habe es nun mal mit einem JTextArea versucht und bin mit dem Ergebnis ganz zufrieden... :)
Jetzt ist nur noch die Frage wie ich meine Ausgabe in dieses Feld kriege...
aber noch ist die Nacht jung... :)
Ich werde meine Fortschritte berichten und vielleicht auch nochmal etwas Hilfe beanspruchen... :)
 
V

vanny

Gast
Also welche Swing / AWT - komponente du für die Ausgabe benutzt, ist Geschmackssache, ich würde zu JList/ JTable tendieren aber Label oder TextArea tun es ja auch.

Ich habe deine Frage aber so verstanden, dass du mit dem ActionListener nicht ganz klar kommst.
Dieses Forum, google, youtube sind voll von guten Beispielen, daher solltest du einfach mal danach suchen und wenn du was hast, wo der Fehler wirklich im Detail liegt, poste hier Code und dir kann besser geholfen werden.

zur Ausgabe
Grundsätzlich haben die Komponenten zur Ausgabe von Text entsprechende setter-Klassen wie setText(); o.ä.


naja teste einfach mal an ein paar simplen Beispielen, dann kommst du bestimmt voran.

Gruß Vanny;)
 

babuschka

Top Contributor
So, ich bin nun etwas weiter gekommen... *jupee!*
Inzwischen funktioniert die Ausgabe wenn ich auf die Buttons clicke, allerdings landet die Ausgabe nicht in meinem JTextArea sondern in der BlueJ-Konsole... Muss ich wirklich die Ausgabe-Methoden komplett umbauen? Ich weiss die Frage ist bestimmt lächerlich einfach, aber ich komm irgendwie trotz mehrstündiger recherche im Netz nicht weiter... Ich bin dankbar um alle tipps! unten mal der Code meiner Hauptklasse...
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.border.*;

import java.util.Iterator;
import java.util.List;
import java.util.Arrays;

import java.io.File;
/**
 * In der Klasse BildFlaeche wird die Grafische Benutzeroberfläche generiert
 * die dem Nutzer dazu dienen soll die Liste der Studenten nach einem bestimmten,
 * auszuwählenden Kriterium zu sortieren.
 * 
 * @author authorFP
 * @version 27.11.2011
 */

public class Kurs
{
    private Student[] studentListe;
    
    private static final String VERSION = "Version 1.0";
    private JFrame fenster;
    private JLabel dateinameLabel;
    private JLabel statusLabel;   
    private JButton firstButton, secondButton, thirdButton, fourthButton;
    private JPanel workspace;
      
    /**
     * Main-Methode, startet das Programm mit dem Befehl zur Ausführung des Konstruktors.
     */
    public static void main (String[] args)
    {
        Kurs kurs = new Kurs();
    }
       
    /**
     * Konstruktor, erzeugt einen Array, füllt diesen mit den Studenten ab und gibt den Array unsortiert aus.
     */
    public Kurs()
    {
        studentListe = new Student[5];// erzeugt einen neuen Array mit 5 Positionen
        // die Studenten werden erzeugt und dem Array angefügt
        studentListe[0] = new Student();
        studentListe[0].setnummer(1);
        studentListe[0].setalter(12);
        studentListe[0].setdurchschnitt(4.3);
        studentListe[0].setname("Walterli Tell junjun.");    
        
        studentListe[1] = new Student();
        studentListe[1].setnummer(2);
        studentListe[1].setalter(467);
        studentListe[1].setdurchschnitt(2.9);
        studentListe[1].setname("Maria Stuart"); 
        
        studentListe[2] = new Student();
        studentListe[2].setnummer(3);
        studentListe[2].setalter(9);
        studentListe[2].setdurchschnitt(5.9);
        studentListe[2].setname("Fritzli Schneider"); 
        
        studentListe[3] = new Student();
        studentListe[3].setnummer(4);
        studentListe[3].setalter(2296);
        studentListe[3].setdurchschnitt(6.0);
        studentListe[3].setname("Archimedes Syrakus"); 
               
        studentListe[4] = new Student();
        studentListe[4].setnummer(5);
        studentListe[4].setalter(20);
        studentListe[4].setdurchschnitt(4.7);
        studentListe[4].setname("Greengrey vonRotz");    
        
        fensterErzeugen();
    }
    
    /**
     * Methode listeAusgebenUnsortiert gibt die Liste unsortiert auf der Konsole aus.
     */
    public void listeAusgebenUnsortiert()
    {
         System.out.println("Liste der Studenten unsortiert: ");// die Liste der Studenten wird ausgegeben, unsortiert
         for(int i=0; i<studentListe.length; i++)
             {
             System.out.println("Studentennummer: " + studentListe[i].getnummer() + ", Name: " + studentListe[i].getname() + 
             ", Alter: " + studentListe[i].getalter() + ", Notendurchschnitt: " + studentListe[i].getdurchschnitt());
             }
         System.out.println("Die gesamte Teilnehmerzahl dieses Kurses beläuft sich auf " + studentListe.length + " Studenten.");// Ausgabe der gesamten Teilnehmerzahl
         System.out.println("--------------------------------------------------------------------------------");
    }

    /**
     * Methode listeAusgebenSortiertAlter gibt den Anstoss zum sortieren der Liste nach Alter
     * und gibt diese auf der Konsole aus.
     */
    public void listeAusgebenSortiertAlter()
    {
         Arrays.sort(studentListe, new alterComparator()); // Gibt den Anstoss zum sortieren nach Alter.
         System.out.println("Studentenliste sortiert nach Alter:");// Gibt die Liste sortiert nach Alter aus.
         for(int i=0; i < studentListe.length; i++)
             {
             System.out.println("Alter: " + studentListe[i].getalter() + ", Name: " + studentListe[i].getname() + ", Notendurchschnitt: " +
             studentListe[i].getdurchschnitt() + ", Studentennummer: " + studentListe[i].getnummer());
             }
         System.out.println("--------------------------------------------------------------------------------");
    }
          
    /**
     * Methode listeAusgebenSortiertName gibt den Anstoss zum sortieren der Liste nach Name
     * und gibt diese auf der Konsole aus.
     */
    public void listeAusgebenSortiertName()
    {
         Arrays.sort(studentListe, new nameComparator()); // Gibt den Anstoss zum sortieren nach Name.
         System.out.println("Studentenliste sortiert nach Name:");// Gibt die Liste sortiert nach Name aus.
         for(int i=0; i < studentListe.length; i++)
             {
             System.out.println("Name: " + studentListe[i].getname() + ", Alter: " + studentListe[i].getalter() + ", Notendurchschnitt: " +
             studentListe[i].getdurchschnitt() + ", Studentennummer: " + studentListe[i].getnummer());
             }
         System.out.println("--------------------------------------------------------------------------------");    
    }
           
    /**
     * Methode listeAusgebenSortiertDurchschnitt gibt den Anstoss zum sortieren der Liste nach Notendurchschnitt
     * und gibt diese auf der Konsole aus.
     */
    public void listeAusgebenSortiertDurchschnitt()
    {
         Arrays.sort(studentListe, new durchschnittComparator()); // Gibt den Anstoss zum sortieren nach Durchschnittsnote.
         System.out.println("Studentenliste sortiert nach Notendurchschnitt:");// Gibt die Liste sortiert nach Durchschnittsnote aus.
         for(int i=0; i < studentListe.length; i++)
             {
             System.out.println("Notendurchschnitt: " + studentListe[i].getdurchschnitt() + ", Alter: " + studentListe[i].getalter() + ", Name: " +
             studentListe[i].getname() + ", Studentennummer: " + studentListe[i].getnummer());
             }
         System.out.println("--------------------------------------------------------------------------------");
    }
    
    /**
     * An example of a method - replace this comment with your own
     * 
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y 
     */
    private void fensterErzeugen()
    {
        // put your code here
        fenster = new JFrame("Studenten Sortierprogramm");
        JPanel contentPane = (JPanel)fenster.getContentPane();
        contentPane.setBorder(new EmptyBorder(6, 6, 6, 6));
        
        menuezeileErzeugen(fenster);
        
        contentPane.setLayout(new BorderLayout(6, 6));
        
        JTextArea workspace = new JTextArea(15,60);
        workspace.setLineWrap(true);
        workspace.setBorder(new EtchedBorder());
        workspace.setWrapStyleWord(true);
        workspace.setTabSize(5);
        workspace.setText("");
        contentPane.add(workspace, BorderLayout.CENTER);
        
        dateinameLabel = new JLabel();
        contentPane.add(dateinameLabel, BorderLayout.NORTH);
               
        JPanel werkzeugleiste = new JPanel();
        werkzeugleiste.setLayout(new GridLayout(0, 1));
        
        firstButton = new JButton("Ursprungszustand");
        firstButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenUnsortiert(); }
                    });
        werkzeugleiste.add(firstButton);
        
        secondButton = new JButton("Sortieren nach Alter");
        secondButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenSortiertAlter(); }
                    });
        werkzeugleiste.add(secondButton);
        
        thirdButton = new JButton("Sortieren nach Name");
        thirdButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenSortiertName(); }
                    });
        werkzeugleiste.add(thirdButton);
        
        fourthButton = new JButton("Sortieren nach Note");
        fourthButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenSortiertDurchschnitt(); }
                    });
        werkzeugleiste.add(fourthButton);
        
        JPanel flow = new JPanel();
        flow.add(werkzeugleiste);
        
        contentPane.add(flow, BorderLayout.WEST);
                
        fenster.pack();
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        fenster.setLocation(d.width/2 - fenster.getWidth()/2, d.height/2 - fenster.getHeight()/2);
        fenster.setVisible(true);
    }
    
    private void menuezeileErzeugen(JFrame fenster)
    {
        final int SHORTCUT_MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
        
        JMenuBar menuezeile = new JMenuBar();
        fenster.setJMenuBar(menuezeile);
        
        JMenu menue;
        JMenuItem eintrag;
        
        menue = new JMenu("Datei");
        menuezeile.add(menue);
        
        eintrag = new JMenuItem("Öffnen...");
        menue.add(eintrag);
        
        eintrag = new JMenuItem("Beenden");
        menue.add(eintrag);
        
        menue = new JMenu("Bearbeiten");
        menuezeile.add(menue);
        
        eintrag = new JMenuItem("sortieren");
        menue.add(eintrag);
        
        menue = new JMenu("?");
        menuezeile.add(menue);
        
        eintrag = new JMenuItem("Hilfe");
        menue.add(eintrag);
        
        eintrag = new JMenuItem("Programminformationen");
        menue.add(eintrag);
    }    
}
 

Fab1

Top Contributor
Hi,

habs mir mal kurz durchgelesen. Du möchtest nur, dass die Texte statt in der Console zum Beispiel in dem Textarea workspace ausgegeben wird, dann musst du einfach statt den ganzen "System.out.println("");"

workspace.setText("Hier kommt der Text rein" );
schreiben.

eventuell musst du zwischendrin, den text immer anhängen, musst schauen, da bin ich mir gerade nicht sicher.

allerdings ist das JTextArea workspace momentan von den anderen Methoden nicht aufrufbar. Musst dann einfach als Instanzvariable (Eigenschaft) oben deklarieren, dann kannst du von allen Methoden darauf zugreifen.
 
den action listener zu implemetieren ist einfach ganz leicht (so weit ich das mitbekommen habe, hast du noch keine fixe antwort hierauf bekommen):

einfach zu beginn der klasse, den actionListener via implement implementieren und die gewünschten buttons registrieren:

Java:
public class meineGUI extends JFrame implements ActionListener
{
...

zuRegistrierenderButton.addActionListener(this);
}

nach dem du den actionlistener implemetiert hast, musst du die methode actionPerformed überschreiben:

Java:
public void actionPerformed(ActionEvent meinEvent) 
	{
		String event = meinEvent.getActionCommand();
                //hier castest du das actionCommand auf einen String
		
		if (event.equals("Name bzw. Text des Buttons"))
		{
                        workspace.setText("my text");
                        //mit diesem befehl einfach den gewünschten text ins JTextField schreiben
		}
	}

somit müsste es ganz einfach funktionieren :)

LG
 

babuschka

Top Contributor
" dann musst du einfach statt den ganzen "System.out.println("");"

workspace.setText("Hier kommt der Text rein" );
schreiben.

Hej!
Genau auf so einen Hinweis habe ich gehofft! super!!!
Nun habe ich aber das Problem, dass mir der Compiler die folgende Fehlermeldung ausspuckt:
"cannot find symbol - method setText(java.lang.String)"
woran kann das liegen? ich hab das Gefühl ich steh komplett auf dem Schlauch...
(ich hab doch workspace initialisiert und ne ganze Zeile an imports? )

@Javaspast 3000: deine Erklärungen sind zwar gut verständlich, allerdings scheint es mir zu komliziert meine Klasse komlett um zu bauen und beim versuch "extends JFrame etc..." hat mir der Compiler einen Fehler nach dem anderen ausgespuckt... Trotzdem Danke!
 

Fab1

Top Contributor
Mir fällt gerade auf du hast 2 mal die Variable workspace, einmal beim JPanel ganz oben in den Instanzvariablen und einmal in der Methode fensterErzeugen()

Ich würde eine auf alle Fälle umbenennen und die Deklaration von der Variablen in der fensterErzeugen Methode dann als Instanzvariable oben draufpacken.

So ungefähr:

Java:
public class Kurs
{
    private Student[] studentListe;
    
    private static final String VERSION = "Version 1.0";
    private JFrame fenster;
    private JLabel dateinameLabel;
    private JLabel statusLabel;   
    private JButton firstButton, secondButton, thirdButton, fourthButton;
    private JPanel workspace;  
    private JTextArea areaTextAusgabe;  // hab dein JTextArea einfach mal umbenannt, dies müsstest du dann natürlich entsprechend in den Methoden aktualisieren.

ich nehm mal an, dass dies der Fehler ist, allerdings kann ich es nicht sicher sagen. Hab momentan auch keine Möglichkeit dies zu testen.

Nun kannst du das JTextArea areaTextAusgabe mit areaTextAusgabe.setTest(""); entsprechend in den Methoden aufrufen.
 

babuschka

Top Contributor
Das tönt plausibel, ich hab auch die Änderungen direkt übernommen, kann allerdings nicht testen obs nun funktioniert weil mit immer noch die Fehlermeldung wegen des "setText" im Weg steht...
Ich werd da mal weiterbasteln und hoffentlich den Fehler finden...
 

babuschka

Top Contributor
So, ich bin schon wieder am rumsurfen...
@Fab1: Deine Tipps haben super geholfen!
Den Fehler hab ich gefunden, setText wird jetzt akzeptiert... Compiler läuft und gibt keine Fehler an.
Wenn ich dann das Programm starte und mit dem Button die Ausgabe teste gibts mir aber eine Riesen Fehlermeldung an...
nochmal den gesamten, aktuellen Code:
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.border.*;

import java.util.Iterator;
import java.util.List;
import java.util.Arrays;
import java.util.*;

import java.io.File;
/**
 * In der Klasse BildFlaeche wird die Grafische Benutzeroberfläche generiert
 * die dem Nutzer dazu dienen soll die Liste der Studenten nach einem bestimmten,
 * auszuwählenden Kriterium zu sortieren.
 * 
 * @author Franziska Popp
 * @version (a version number or a date)
 */

public class Kurs
{
    private Student[] studentListe;
    
    private static final String VERSION = "Version 1.0";
    private JFrame fenster;
    private JLabel dateinameLabel;
    private JLabel statusLabel;   
    private JButton firstButton, secondButton, thirdButton, fourthButton;
    private JPanel workspace;
    private JTextArea areaTextAusgabe;

      
    /**
     * Main-Methode, startet das Programm mit dem Befehl zur Ausführung des Konstruktors.
     */
    public static void main (String[] args)
    {
        Kurs kurs = new Kurs();
    }
       
    /**
     * Konstruktor, erzeugt einen Array, füllt diesen mit den Studenten ab und gibt den Array unsortiert aus.
     */
    public Kurs()
    {
        studentListe = new Student[5];// erzeugt einen neuen Array mit 5 Positionen
        // die Studenten werden erzeugt und dem Array angefügt
        studentListe[0] = new Student();
        studentListe[0].setnummer(1);
        studentListe[0].setalter(12);
        studentListe[0].setdurchschnitt(4.3);
        studentListe[0].setname("Walterli Tell junjun.");    
        
        studentListe[1] = new Student();
        studentListe[1].setnummer(2);
        studentListe[1].setalter(467);
        studentListe[1].setdurchschnitt(2.9);
        studentListe[1].setname("Maria Stuart"); 
        
        studentListe[2] = new Student();
        studentListe[2].setnummer(3);
        studentListe[2].setalter(9);
        studentListe[2].setdurchschnitt(5.9);
        studentListe[2].setname("Fritzli Schneider"); 
        
        studentListe[3] = new Student();
        studentListe[3].setnummer(4);
        studentListe[3].setalter(2296);
        studentListe[3].setdurchschnitt(6.0);
        studentListe[3].setname("Archimedes Syrakus"); 
               
        studentListe[4] = new Student();
        studentListe[4].setnummer(5);
        studentListe[4].setalter(20);
        studentListe[4].setdurchschnitt(4.7);
        studentListe[4].setname("Greengrey vonRotz");    
        
        fensterErzeugen();
    }
    
    /**
     * Methode listeAusgebenUnsortiert gibt die Liste unsortiert auf der Konsole aus.
     */
    public void listeAusgebenUnsortiert()
    {
         areaTextAusgabe.setText("Liste der Studenten unsortiert: ");// die Liste der Studenten wird ausgegeben, unsortiert
         for(int i=0; i<studentListe.length; i++)
             {
             areaTextAusgabe.setText("Studentennummer: " + studentListe[i].getnummer() + ", Name: " + studentListe[i].getname() + 
             ", Alter: " + studentListe[i].getalter() + ", Notendurchschnitt: " + studentListe[i].getdurchschnitt());
             }
         areaTextAusgabe.setText("Die gesamte Teilnehmerzahl dieses Kurses beläuft sich auf " + studentListe.length + " Studenten.");// Ausgabe der gesamten Teilnehmerzahl
         areaTextAusgabe.setText("--------------------------------------------------------------------------------");
    }

    /**
     * Methode listeAusgebenSortiertAlter gibt den Anstoss zum sortieren der Liste nach Alter
     * und gibt diese auf der Konsole aus.
     */
    public void listeAusgebenSortiertAlter()
    {
         Arrays.sort(studentListe, new alterComparator()); // Gibt den Anstoss zum sortieren nach Alter.
         areaTextAusgabe.setText("Studentenliste sortiert nach Alter:");// Gibt die Liste sortiert nach Alter aus.
         for(int i=0; i < studentListe.length; i++)
             {
             areaTextAusgabe.setText("Alter: " + studentListe[i].getalter() + ", Name: " + studentListe[i].getname() + ", Notendurchschnitt: " +
             studentListe[i].getdurchschnitt() + ", Studentennummer: " + studentListe[i].getnummer());
             }
         areaTextAusgabe.setText("--------------------------------------------------------------------------------");
    }
          
    /**
     * Methode listeAusgebenSortiertName gibt den Anstoss zum sortieren der Liste nach Name
     * und gibt diese auf der Konsole aus.
     */
    public void listeAusgebenSortiertName()
    {
         Arrays.sort(studentListe, new nameComparator()); // Gibt den Anstoss zum sortieren nach Name.
         areaTextAusgabe.setText("Studentenliste sortiert nach Name:");// Gibt die Liste sortiert nach Name aus.
         for(int i=0; i < studentListe.length; i++)
             {
             areaTextAusgabe.setText("Name: " + studentListe[i].getname() + ", Alter: " + studentListe[i].getalter() + ", Notendurchschnitt: " +
             studentListe[i].getdurchschnitt() + ", Studentennummer: " + studentListe[i].getnummer());
             }
         areaTextAusgabe.setText("--------------------------------------------------------------------------------");    
    }
           
    /**
     * Methode listeAusgebenSortiertDurchschnitt gibt den Anstoss zum sortieren der Liste nach Notendurchschnitt
     * und gibt diese auf der Konsole aus.
     */
    public void listeAusgebenSortiertDurchschnitt()
    {
         Arrays.sort(studentListe, new durchschnittComparator()); // Gibt den Anstoss zum sortieren nach Durchschnittsnote.
         areaTextAusgabe.setText("Studentenliste sortiert nach Notendurchschnitt:");// Gibt die Liste sortiert nach Durchschnittsnote aus.
         for(int i=0; i < studentListe.length; i++)
             {
             areaTextAusgabe.setText("Notendurchschnitt: " + studentListe[i].getdurchschnitt() + ", Alter: " + studentListe[i].getalter() + ", Name: " +
             studentListe[i].getname() + ", Studentennummer: " + studentListe[i].getnummer());
             }
         areaTextAusgabe.setText("--------------------------------------------------------------------------------");
    }
    
    /**
     * An example of a method - replace this comment with your own
     * 
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y 
     */
    private void fensterErzeugen()
    {
        // put your code here
        fenster = new JFrame("Studenten Sortierprogramm");
        JPanel contentPane = (JPanel)fenster.getContentPane();
        contentPane.setBorder(new EmptyBorder(6, 6, 6, 6));
        
        menuezeileErzeugen(fenster);
        
        contentPane.setLayout(new BorderLayout(6, 6));
        
        JTextArea workspace = new JTextArea(15,60);
        workspace.setLineWrap(true);
        workspace.setBorder(new EtchedBorder());
        workspace.setWrapStyleWord(true);
        workspace.setTabSize(5);
        contentPane.add(workspace, BorderLayout.CENTER);
        
        dateinameLabel = new JLabel();
        contentPane.add(dateinameLabel, BorderLayout.NORTH);
               
        JPanel werkzeugleiste = new JPanel();
        werkzeugleiste.setLayout(new GridLayout(0, 1));
        
        firstButton = new JButton("Ursprungszustand");
        firstButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenUnsortiert(); }
                    });
        werkzeugleiste.add(firstButton);
        
        secondButton = new JButton("Sortieren nach Alter");
        secondButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenSortiertAlter(); }
                    });
        werkzeugleiste.add(secondButton);
        
        thirdButton = new JButton("Sortieren nach Name");
        thirdButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenSortiertName(); }
                    });
        werkzeugleiste.add(thirdButton);
        
        fourthButton = new JButton("Sortieren nach Note");
        fourthButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) { listeAusgebenSortiertDurchschnitt(); }
                    });
        werkzeugleiste.add(fourthButton);
        
        JPanel flow = new JPanel();
        flow.add(werkzeugleiste);
        
        contentPane.add(flow, BorderLayout.WEST);
                
        fenster.pack();
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        fenster.setLocation(d.width/2 - fenster.getWidth()/2, d.height/2 - fenster.getHeight()/2);
        fenster.setVisible(true);
    }
    
    private void menuezeileErzeugen(JFrame fenster)
    {
        final int SHORTCUT_MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
        
        JMenuBar menuezeile = new JMenuBar();
        fenster.setJMenuBar(menuezeile);
        
        JMenu menue;
        JMenuItem eintrag;
        
        menue = new JMenu("Datei");
        menuezeile.add(menue);
        
        eintrag = new JMenuItem("Öffnen...");
        menue.add(eintrag);
        
        eintrag = new JMenuItem("Beenden");
        menue.add(eintrag);
        
        menue = new JMenu("Bearbeiten");
        menuezeile.add(menue);
        
        eintrag = new JMenuItem("sortieren");
        menue.add(eintrag);
        
        menue = new JMenu("?");
        menuezeile.add(menue);
        
        eintrag = new JMenuItem("Hilfe");
        menue.add(eintrag);
        
        eintrag = new JMenuItem("Programminformationen");
        menue.add(eintrag);
    }
}

Ich habe den Verdacht, dass irgenwo zu Beginn der Methode "fensterErzeugen()" mein Fehler liegt...
mit welchen Umgebungen arbeitet Ihr? auch BlueJ? oder gibts eine Umgebung die besser/ zu empfehlen ist?
vielen Dank!
 

Fab1

Top Contributor
Als Umgebung verwenden die meisten eclipse und an zweiter Stelle netbeans.

Also was mir noch eingefallen ist, in der Arbeit nicht dran gedacht sry.

Und zwar. Du musst an den JTextAreas immer etwas anhängen. Und mithilfe von "\n" (ACHTUNG: Backslash) machst du einen Zeilenumbruch.

In einem Beispiel:

Java:
import javax.swing.*;
import java.awt.*;

public class Animate{

	JTextArea text;
	JFrame frame;
	

  public static void main(String args[]) {
    new Animate().los();
	 
  }
  
  public void los(){
	  
	  text = new JTextArea();
	  frame = new JFrame("Test");
	  frame.add(text);
	  frame.setSize(300, 300);
	  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  
	  text.setText("String1" + "\n");
	  text.append("String2");
	  
	  frame.setVisible(true);
  }
}


Also das Fenster sieht ganz Ordentlich aus. Lässt sich bei mir auch ausführen, hab allerdings ein paar Sachen ausgeklammert, da ich z.B. die Klasse Student nicht habe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
T Datentypen boolean von anderer klasse in hauptklasse übertragen Java Basics - Anfänger-Themen 2
S Methode aus Hauptklasse in innerer Klasse verwenden Java Basics - Anfänger-Themen 4
I @Inject in normaler Klasse? Java Basics - Anfänger-Themen 4
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Detlef Bosau nichtstatische Innere Klasse, this Pointer. Java Basics - Anfänger-Themen 47
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Optional Klasse Java Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Klassen Typ und Intitialisierungs-Klasse, wer bestimmt was? Java Basics - Anfänger-Themen 1
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
B Klasse "Character" Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
I Array Länge in Klasse festlegen Java Basics - Anfänger-Themen 1
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
M Scanner Klasse Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
I JaxB und Klasse "Object" ? Java Basics - Anfänger-Themen 7
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
A Klasse Menge mit Objekten der Klasse Person Java Basics - Anfänger-Themen 8
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
J Scanner-Klasse Java Basics - Anfänger-Themen 2
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
P NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap trotz vorhandener Klasse? Java Basics - Anfänger-Themen 10
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
M Java Klasse Object Java Basics - Anfänger-Themen 5
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
B Klassen Abstrake Klasse und Template Methode Java Basics - Anfänger-Themen 4
S ArrayList in andere Klasse übernhemen Java Basics - Anfänger-Themen 5
B Erste Schritte Guice Injection nicht in jeder Klasse möglich Java Basics - Anfänger-Themen 2
Y Java andere Klasse aufrufen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben