GUI - ActionListener

Liondary

Mitglied
Hey, ich arbeite grade zum ersten mal mit einem GUI. Als LayoutManager habe ich MigLayout gewählt. Mein Ziel ist es, dass wenn ich in der JComboBox zum Beispiel Mensch auswähle, eine Instanz der Klasse Mensch erzeugt wird und auf dem Panel, welches sich auf dem Frame befindet dann auch die Nachricht aufplopt "Mensch erzeugt". Leider funktioniert das nicht... Kann mir jemand sagen wieso?

Vielen Dank schon mal!

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

public class App {
    public static void main (String[] args) {      
        SwingUtilities.invokeLater(new Runnable() { // Erstellt einen (Swing)Thread
          
            public void run() {              
                JFrame frame = new MainFrame( "Frame"); //Erzeugt Instanz von MainFrame und ruft Konstruktor auf
              
                //Frame Eigenschaften
                frame.setVisible(true);
                frame.setSize( 350, 500 );
                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );              
            }
        });      
    }
}

Java:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.*;
import javax.swing.border.EmptyBorder;

import net.miginfocom.swing.MigLayout;

@SuppressWarnings("serial")
public class MainFrame extends JFrame implements ActionListener {
  
    public MainFrame(String title) {
        super(title); // Ruft den Konstruktor der Superklasse (in diesem Fall Frame) auf und übergibt den Titel
      
        String objekt;
        String[] list = {"-","Lebewesen", "Mensch", "Superheld"};
        JPanel c = new JPanel();
      
        this.getContentPane().add(c);
        c.setLayout(new MigLayout("", "[]", "[] [] [] []"));
      
        JLabel begruessung = new JLabel("Hallo, was möchten Sie erzeugen?");
      
        @SuppressWarnings({ "rawtypes" })
        JComboBox liste = new JComboBox(list);
        liste.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                String s = (String) liste.getSelectedItem();

                switch (s) {
                    case "-":
                        JLabel nichts = new JLabel("-");
                        c.add(nichts, "cell 0 1");
                        System.out.println("-");
                        break;
                    case "Lebewesen":
                        Lebewesen lebewesen1 = new Lebewesen();
                        JLabel lebewesen = new JLabel("Lebewesen erzeugt");
                        c.add(lebewesen, "cell 0 1");
                        System.out.println("Lebewesen");
                        break;
                    case "Mensch":
                        Mensch mensch1 = new Mensch();
                        JLabel mensch = new JLabel("Mensch erzeugt");
                        c.add(mensch, "cell 0 1");
                        System.out.println("Mensch");
                        break;
                    case "Superheld":
                        Superheld superheld1 = new Superheld();
                        JLabel superheld = new JLabel("Superheld erzeugt");
                        c.add(superheld, "cell 0 1");
                        System.out.println("Superheld");
                        break;
                }
            }
        });
      
        c.add(begruessung, "cell 0 0");
        c.add(liste, "cell 0 1");
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub      
    }
}

Java:
public class Lebewesen {
  
    protected boolean lebt;

    public Lebewesen() {      
    }
  
    public void atmen() {      
        lebt = true;
    }
  
    public void sterben () {      
        lebt = false;
    }
}

Java:
public class Mensch extends Lebewesen {
  
    protected String hautfarbe;
    protected boolean sauberkeit;
  
    public Mensch() {
        hautfarbe = "unbekannt";
        sauberkeit = false;
    }
  
    public void setHautfarbe(String _hautfarbe) {      
        hautfarbe = _hautfarbe;      
    }
  
    public String getHautarbe() {      
        return hautfarbe;
    }
  
    public void waschen() {      
        sauberkeit = true;
    }
  
    public void schwitzen() {  
        sauberkeit = false;
    }
  
    public boolean getSauberkeit() {      
        return sauberkeit;
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Liondary

Mitglied
@VfL_Freak
Also wenn ich starte wird das Label mit "Was soll erzeugt werden" und die ComboBox mit den Auswahlmöglichkeiten angezeigt. Wenn man jetzt zum Beispiel Mensch auswählt wird unten in der Console auch auch "Mensch" ausgegeben - bedeutet der ActionListener funktionert. Aber ich möchte ja das auch "Mensch erzeugt" als Label auf das Panel gebracht wird und genau das funktioniert eben nicht. Also das nachträgliche ergänzen eines JLabes auf das JPanel durch einen ActionListener. Hoffentlich war das jetzt klarer :) Liebe Grüße
 

VfL_Freak

Top Contributor
Moin,

Du meinst diese Zeile?
Java:
c.add(mensch, "cell 0 1");
habe schnell mal in die API geschaut und für JPannel keine add-Methode gefunden, die Parameter sowas wie (Object, String) oder (Component, String) akzeptiert!
Was soll die denn Deiner Meinung nach machen ??
Gruß Klaus
 

Liondary

Mitglied
In der Zeile:
Java:
c.add(begruessung, "cell 0 0");
c.add(liste, "cell 0 1");

Funktioniert das ganze ja...

Das ist Teil des MigLayouts (nicht in der Standart Bibliothek), bei diesem Layout wird das Frame in Spalten und Zeilen aufgeteilt und der String "cell 0 1" gibt an das das Label in der 0 Spalte, in der ersten Zeile positioniert werden soll.

Hier mehr Infos zum MigLayout: http://www.miglayout.com/QuickStart.pdf
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
pkm MainFrame durch Actionlistener auffrischen, aber wie? AWT, Swing, JavaFX & SWT 2
L actionListener für Button AWT, Swing, JavaFX & SWT 97
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
R ActionListener in Actionlistener AWT, Swing, JavaFX & SWT 6
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
coolian ActionListener funktonirt nicht richtig auf JMenuItem AWT, Swing, JavaFX & SWT 4
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
Blender3D einzelner ActionListener vs anonyme ActionListener AWT, Swing, JavaFX & SWT 10
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
F "ActionListener" funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z ActionListener Variable übergeben AWT, Swing, JavaFX & SWT 12
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
T ActionListener nimmt JTextField nicht mehr an. AWT, Swing, JavaFX & SWT 2
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
J ActionListener erkennt Variable nicht AWT, Swing, JavaFX & SWT 6
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
Sin137 ActionListener in MVC AWT, Swing, JavaFX & SWT 7
M ActionListener und mathematische Methoden AWT, Swing, JavaFX & SWT 13
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
Y ActionListener AWT, Swing, JavaFX & SWT 2
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
A Gui für Vokabeltrainer (ActionListener) AWT, Swing, JavaFX & SWT 14
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
J Event Handling JOptionPane ActionListener setzen. AWT, Swing, JavaFX & SWT 3
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
K GUI, Button, ActionListener - ein paar Einsteigerprobleme AWT, Swing, JavaFX & SWT 1
W Verschachtelter ActionListener AWT, Swing, JavaFX & SWT 0
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
A Swing ActionListener AWT, Swing, JavaFX & SWT 8
V ActionListener Abhängigkeitenproblem AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
M Event Handling ActionListener übergeben ich checks net AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
L Swing ActionListener führt seine Aufgabe nur teilweise aus. AWT, Swing, JavaFX & SWT 7
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
M ProgressBar in ActionListener AWT, Swing, JavaFX & SWT 4
D AWT eigenem Knopf ActionListener zuweisen AWT, Swing, JavaFX & SWT 24
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
J ActionListener per Innere Klasse oder e.getActionCommand() if-Abfrage? AWT, Swing, JavaFX & SWT 12
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
Oliver530 ActionListener von eigener ButtonKlasse AWT, Swing, JavaFX & SWT 16
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
N Componente und Actionlistener AWT, Swing, JavaFX & SWT 5
C ActionListener AWT, Swing, JavaFX & SWT 6
Corben ActionListener Error AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
I Swing Problem mit InputMap bei JButton (ActionListener) AWT, Swing, JavaFX & SWT 3
S Swing JButton mit ActionListener innerhalb einer JTable AWT, Swing, JavaFX & SWT 4
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
M AWT Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
S ActionListener "nach oben weitergeben" AWT, Swing, JavaFX & SWT 10
M Anonymer ActionListener AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
B Swing Formular mit mehreren Elementen - wie die ActionListener-Verarbeitung lösen? AWT, Swing, JavaFX & SWT 2
M getSource() findet Button nicht - ActionListener AWT, Swing, JavaFX & SWT 4
S Swing mit ActionListener auf Objekte einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 3
G Swing Button ActionListener macht komische Sachen AWT, Swing, JavaFX & SWT 19

Ähnliche Java Themen

Neue Themen


Oben