Klasse wird nicht aufgerufen


tom23

Mitglied
Ich bringe mir aktuell selber Java bei und schriebe gerade an einem Programm welches ein fenster erstellt mit einem Textfeld in das Namen geschrieben werden sollen . Dann werde diese durch drücken vo Knopf "Speichern" in ein Array eingefügt dieses array läst sich mit dem Knopf "Anzeigen" wieder Ausgeben bis dahin funktioniert auch alles. Allerdigs habe ich auch noch den Knopf Bearbeiten welcher die Klasse Edit aufrufen soll dies funktioniert allerdings nicht mir werden aber auch keinerlei Feher angezeigt .
Die Klasse Edit soll mit der Methode "Edito" ein JFrame erzeugen und dieses mit JLabel , JTextField und JButton versehen.

Code der Main Methode:
Java:
package array;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

import javax.swing.*;

public class Namensliste  implements ActionListener {

    static String [] names = new String[5];
     static int i;

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        JTextField Name;
        JButton Speichern;
        JButton Show;
        JLabel Anzeige;
        JButton Bearbeiten;
        
        JFrame F1 = new JFrame () ;
        F1.setSize(900, 900);
        F1.setLayout(new FlowLayout());
        
         Name = new JTextField ("Name");
         Name.setSize(92, 92);
         Speichern = new JButton ("Speichern");//width=92,height=26
         Show = new JButton ("Anzeigen");
         Anzeige = new JLabel ();
         Anzeige.setSize(92, 26);
         Bearbeiten = new JButton("Bearbeiten");
         Bearbeiten.setSize(92, 26);
        
        i = 0;
        
ActionListener al = new ActionListener () {
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if (e.getSource()== Speichern) {
            
            names[i++] = Name.getText();
        }
        if (e.getSource()==Show) {
            Anzeige.setText(Arrays.toString(names));;
        }   
        if(e.getSource()==Bearbeiten) {
          new Edit ();
        }
        
    }
};

Show.addActionListener(al);
Speichern.addActionListener(al);
Bearbeiten.addActionListener(al);

   F1.add(Bearbeiten);
   F1.add(Show);
   F1.add(Anzeige);
   F1.add(Name);
   F1.add(Speichern);
   F1.setVisible(true);
    }


@Override// dient zur unterdrückung von fehlern
public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub
    
}


}
Code der Edit Klasse:
Java:
package array;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

import javax.swing.*;

public class Edit extends Namensliste implements ActionListener {

static void Edito () {
    
    JTextField remove;
    JButton confirm;
    JLabel list;
    
    JFrame F2 = new JFrame ("Editor");
    F2.setSize(900, 800);
    F2.setLayout(new FlowLayout());
    
    System.out.print("hallo");
    
    remove = new JTextField("First word is number zero");
    confirm = new JButton ("Bestägigen");
    list = new JLabel (Arrays.deepToString(names));
    
    ActionListener al = new ActionListener () {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            
        }
        
    };
    
    confirm.addActionListener(al);
    
    F2.add(list);
    F2.add(remove);
    F2.add(confirm);
    
    F2.setVisible(true);

}

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

vfl_freak

Premium-User
Moin,

schau mal genau in den zweiten Code wie Deine Klasse rsp. der Konstruktor dort wirklich heißt :ROFLMAO:
Tipp: NICHT Edit !!

BTW: Dürfte so eigentlich gar nicht compilieren, oder ??

VG Klaus
 

zerix

Hausmeister
Moderator
Hi,

@tom23
Du sagst doch, dass mittels der Methode Edito ein JFrame erzeugt werden soll, warum rufst du die Methode denn nicht auf? Gewöhnlich muss man eine Methode aufrufen, wenn sie ausgeführt werden soll. ;)

@vfl_freak
Wo siehst du denn einen Konstruktor in der zweiten Klasse? ;)

Viele Grüße
Sascha
 

tom23

Mitglied
Ich habe vor kuzem schon einmal um Hilfe gebetten da sich eine klasse welche ich geschrieben hatte nicht auf rufen ließ, ich bekam dann glücklicherweise die benötigte Hilfe. Heute habe ich dann eine neue Klasse geschrieben bei der ich mir zu 100% sicher bin das ich die Fehler vom letzten mal nicht wieder gemacht habe , ich habe die beiden aufrufen xmal mit einander verglichen aber ich finden den Fehler / unterschied beim aufruf nicht .

Hier die aufufe der beiden klassen :
Java:
    if(e.getSource()==Bearbeiten) {
          new Edit ();
        }
       
        if (e.getSource() == gruppen ) {
           new Groups();
        }
Der obere Teil der Klasse die erfolgreich aufgerufen wird:
Java:
public class Edit extends Namensliste implements ActionListener {

    String y;
   
Edit () {
Hier der gleiche Teil der Klasse die nicht richtig aufgerufen wird:
Java:
public class Groups extends Namensliste implements ActionListener {
   
   
Groups () {
 

zerix

Hausmeister
Moderator
Hallo,

ich habe mal die Themen zusammengeführt. Ich möchte dich weiterhin bitten, doch etwas mehr auf Groß- und Kleinschreibung zu achten, was auch ein Punkt in unserer Netiquette ist.

Nun zum Thema: Es wäre nicht schlecht, wenn du uns mal den ganzen relevanten Code zeigst. Denn so kann man nicht viel dazu sagen, da einige Informationen fehlen.

Sachen, die du aber schon mal kontrollieren kannst sind:
- Wird die Methode actionPerformed tatsächlich aufgerufen, durch den Klick
- Falls nicht, ist der ActionListener richtig hinzugefügt
- Ist gruppen die richtige Source?
- Wird die if-Anweisung überhaupt betreten

Viele Grüße
Sascha