Actionlistener funktionieren nicht in der .jar

S

Simon92

Gast
Hallo!
Folgendes Problem beschäftigt mich:

In meiner Klassendefinition melde ich eine Reihe von Buttons an, bspw:

Java:
public class Heldensimulator extends Frame implements ActionListener
{
  GridBagLayout gbl = new GridBagLayout();
  GridBagConstraints c = new GridBagConstraints();
  Button A1 = new Button("Neu");
  Button C1 = new Button("Weiter zum Basar");
}

Im Konstruktor füge ich einen Teil der angemeldeten Buttons auf die Oberfläche hinzu, dazu ein Actionlistener:
Java:
public Heldensimulator() 
{
  c.gridx = 3;                      
  c.gridy = 8;                      
  c.gridwidth = 3;                
  c.gridheight = 1;                
  gbl.setConstraints(A1, c);
  add(A1);     

  addWindowListener(new Beenden());
  A1.addActionListener(this);
  C1.addActionListener(this);
}

Nun werden im Laufe des Programmes Methoden aufgerufen, die Buttons entfernen und neue hinzufügen (siehe Beispiel)

Java:
public void actionPerformed(ActionEvent e)
    {
     String command = e.getActionCommand();
     
      if (command == "Neu")
      {
        remove(A1);
        c.gridx = 5;                        
        c.gridy = 10;                        
        c.gridwidth = 3;                    
        c.gridheight = 1;                   
        gbl.setConstraints(C1, c);
        add(C1); 
      }
   }

(Immer nur Ausschnitte)

Innerhalb von BlueJ (das benutze ich), funktioniert auch alles super und ohne Probleme, nur wenn ich das ganze als jar exportieren will, scheinen in der entstehenden Datei alle Buttons taub zu sein, als ob sie kein actionevent hätten. Woran liegt das?
Also warum einmal so, dann mal so?

Vielen Dank
Simon
 

XHelp

Top Contributor
Was sagt denn die Konsole dazu? Ansonsten bau dir Debugausgaben rein, vllt wirst die GUI ja einfach nicht aktualisiert, oder es wird irgendwas nicht ausgeführt... Dann solltest du recht schnell erkennen, woran es liegt.
P.S. an der Namensgebung könntest du noch etwas schrauben
 
S

Simon92

Gast
@eRaaaa: Danke, aber daran kann es nicht liegen. Es funktioniert so (obwohl ich weiß, dass das andere besser ist, aber da Skript ist schon älter) ja sonst überall und das ganze klappt auch, wenn ich es innerhalb von BlueJ ausführe, deswegen kanne s ja nicht der Urspung dieses Fehlers sein, der ja erst beim Test außerhalb BlueJs auftritt.

@xHelp: Zu meiner Scham muss ich gestehen, dass ich mich mit der Konsole garnicht auskenne, ich habe damit noch nie gearbeitet. Zu den Debugausgaben: Also vor der Visualisierung des Buttons wird eigtl noch ein Inputdialog gestartet, das funktioniert auch. Bei Klick auf den Button passiert einfach ncihts, egal was da passieren sollte (Debugnachricht), der Button verändert zwar kurz seine Optik (dieses kurze Aufblitzen), es geschieht jedoch nichts.

Hier hab ich mal den gesamten Quelltext hochgeladen, vielleicht hilft ja das?:

http://home.arcor.de/peter_wiese/Heldensimulator.java
 

Marco13

Top Contributor
So direkt compiliert funktioniert das bei mir auch (was ich in abetracht des...etwas ... strukturarmen... Codes nicht etwartet hätte). Bei einer einzelnen Java-Datei ohne package und so kann da eigentlich nicht soo viel schiefgehen ... das einzige, was ich mir vorstellen könnte, wäre, dass vielleicht die "Heldensimulator$Beenden.class" nicht mit in der JAR ist, und es ihn deswegen beim Start mit einer Exception raushaut... ist aber nur ein Strohhalm...
 
S

Simon92

Gast
Echt? Wie hast du es den kompiliert? Weil ich kann nur mit BlueJ kompilieren und vllt. hängt BlueJ ja mit dem Problem zusammen, sodass es anders aussehen würde, wenn man es anders kompiliert?
Was meinst du denn mit strukturarm? Bin halt noch sehr blutiger Anfänger und erst seit ein paar Wochen am lernen :D
 

Marco13

Top Contributor
Nicht als JAR, einfach in TextPad kopiert, compiliert und gestartet. Kein KSKB, aber zumindest ein SKB :D Dabei sollten 2 .class-Dateien entstehen. Wie hast du denn die JAR erstellt?

"strukturarm" heißt, dass das alles EINE Klasse ist :autsch: Die Objektorientierte Variante vom ... Spaghetticode ...nein, das wäre eigentlich "Lasagnecode" (zu viele Schichten), das IST eigentlich immernoch Spaghetticode.

Wenn man das "normal" Programmieren würde, würden da mindestens 5-10, vermutlich eher 10-20, und bei OO-Nazis (oder wenn es darum geht, OO-Konzepte zu üben) auch gerne 20-40 Klassen draus werden. Angefangen bei "Hero", über die ganzen Klassen fürs GUI, wie "ShopPanel" etc., bis zu "AbstractMonster" mit Implementierungen wie "Goblin" & Co ...
 
S

Simon92

Gast
Ich habe das mit BlueJ kompiliert und wüsste garnicht, wie ich es hätte anders kompilieren können (Wonei ich das mittlerweile gern tun würde, da es ja bei dir besser zu klappen scheint als bei mir und ich bis morgen früh eine fehlerfreie Version vorlegen können muss).

Zum dritten Abschnitt sage ich einfach nichts, kann ich auch garnicht, da ich nur die Hälfte verstehe :D Aber so lange es irgendwie funktioniert ist es mir auch egal, ob der Code schön aussieht und mit Lasagne oder Spaghetti asoziiere ich eigentlich schöne Dinge :)
 

Marco13

Top Contributor
Ganz kurz: Eine Klasse sollte eigentlich ein "Ding" beschreiben, z.B. könnte eine KLasse "Hero" existieren, die von der Struktur etwa so aussieht wie
Code:
class Hero
{
    int strength;
    int charisma;
...

    public void setStrength(int s) { this.strength = s; }
    public int getStrength() { return strength; }
...
Eigentlich besser noch als interface mit einer implementierung, und Listenern für änderungen und so, aber...

Die ganzen Änderungen am GUI, die du im Moment nach dem Muster machst
Code:
panel.removeAll();
panel.add(dasNeueDing1);
panel.add(dasNeueDing2);
...
sollten so aufgebaut sein, dass alle Dinge, die zusammengehören, in einer KLasse liegen:
Code:
class ShopPanel extends JPanel
{
    private JButton kaufenButton;
    private JButton handelnButton;
...
    public ShopPanel()
    {
        ...
        add(kaufenButton);
        add(handelnButton);
        ...
    }

}
und dann im Frame nur zwischen diesen Panels hin- und her geschaltet wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S ActionListener, Methoden und Variablen Java Basics - Anfänger-Themen 4
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
E ActionListener abwarten lassen? Java Basics - Anfänger-Themen 11
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben