tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von vfl_freak
  • 1 Beitrag von Kai008
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
863
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    neuling-00 neuling-00 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    hi Leute...

    Ich hab hier ein Problem...ich will in meinem ActionListener eine Klasse aufrufen.
    eigentlich müsste das ja funktionieren:
    bla = new bla();
    aber leider funktioniert es nicht....

    Kann mir bitte jmd helfen....

    hier ist der actionListener...

    public class MultListener implements ActionListener{
    public void actionPerformed(ActionEvent b) {
    Matrix m= new Matrix();
    }
    }

    und die Klasse Matrix soll aufgerufen werden..aber funktioniert nicht...

    bitte help
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    was genau funktioniert nicht - sprich: welche Fehlermeldung bekommst Du denn

    BTW: und nutze bitte die Code-Tags !

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    neuling-00 neuling-00 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    Ich bekomme keine Fehlermeldung..leider..
    Die klasse die ich aufrufe läuft einfach nicht...denn wenn sie laufen würde, würde eine JOptionPane aufgehen....

    Code :
    1
    2
    3
    4
    5
    6
    7
    
     public class MultListener implements ActionListener{
                 public void actionPerformed(ActionEvent b) {
                     Matrix m = new Matrix();
     
     
                 }
                 }

    und hier nochmal die Matrix klasse:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    
    package wi2;
     
    import java.text.SimpleDateFormat;
    import java.util.Random;
    import javax.swing.JOptionPane;
     
    public class Matrix implements Runnable{
    public void run() {
        try {
          int n =1000;
          int i, j,k;
          //Zufallszahlengenerator
          Random r = new Random();
     
          //deklaration der Matritzen
          int a[][] = new int[n][n];
          int b[][] = new int[n][n];
          int c[][] = new int[n][n];
     
     
          //Füllen der Matrizen
          for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
              a[i][j] = r.nextInt();
              b[i][j] = r.nextInt();
            }
          }
          System.out.println("START:");
          final long startZeit = System.currentTimeMillis();
     
          //Multiplikation der Matritzen
          for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
              for(k = 0; k < n; k++) {
                c[i][j] += a[i][k] * b[k][j];
              }
            }
          }
     
           long endZeit = System.currentTimeMillis();
           long zeit= endZeit - startZeit;
     
           SimpleDateFormat sdfTime = new SimpleDateFormat();
           sdfTime.applyPattern("mm:ss");
     
          System.out.println("Programmdurchlaufdauer auf Ein Prozessormaschine beträgt:" +
                  " "+zeit+" ms." +
                  "In Minuten : " +sdfTime.format(zeit));
     
    //      System.out.println(sdfTime.format(zeit));
        }
        catch (Exception ex){
          System.out.println("Fehler beim Ausführen");
        }
       }
      }
    class testlauf{
        public static void main(String []args){
            Runnable threadJob = new Matrix();
            Thread meinThread = new Thread(threadJob);
     
            meinThread.start();
        }
    }
     

  4. #4
    neuling-00 neuling-00 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    Zitat Zitat von neuling-00 Beitrag anzeigen
    Ich bekomme keine Fehlermeldung..leider..
    Die klasse die ich aufrufe läuft einfach nicht...denn wenn sie laufen würde müsste bei der Ausgabe etwas steht...aber nix..
    Voll komisch...wenn ich eine Klasse mit jFrame aufrufe, funktioniert es...aber so...!?

    Code :
    1
    2
    3
    4
    5
    6
    7
    
     public class MultListener implements ActionListener{
                 public void actionPerformed(ActionEvent b) {
                     Matrix m = new Matrix();
     
     
                 }
                 }

    und hier nochmal die Matrix klasse:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    
    package wi2;
     
    import java.text.SimpleDateFormat;
    import java.util.Random;
    import javax.swing.JOptionPane;
     
    public class Matrix implements Runnable{
    public void run() {
        try {
          int n =1000;
          int i, j,k;
          //Zufallszahlengenerator
          Random r = new Random();
     
          //deklaration der Matritzen
          int a[][] = new int[n][n];
          int b[][] = new int[n][n];
          int c[][] = new int[n][n];
     
     
          //Füllen der Matrizen
          for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
              a[i][j] = r.nextInt();
              b[i][j] = r.nextInt();
            }
          }
          System.out.println("START:");
          final long startZeit = System.currentTimeMillis();
     
          //Multiplikation der Matritzen
          for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
              for(k = 0; k < n; k++) {
                c[i][j] += a[i][k] * b[k][j];
              }
            }
          }
     
           long endZeit = System.currentTimeMillis();
           long zeit= endZeit - startZeit;
     
           SimpleDateFormat sdfTime = new SimpleDateFormat();
           sdfTime.applyPattern("mm:ss");
     
          System.out.println("Programmdurchlaufdauer auf Ein Prozessormaschine beträgt:" +
                  " "+zeit+" ms." +
                  "In Minuten : " +sdfTime.format(zeit));
     
    //      System.out.println(sdfTime.format(zeit));
        }
        catch (Exception ex){
          System.out.println("Fehler beim Ausführen");
        }
       }
      }
    class testlauf{
        public static void main(String []args){
            Runnable threadJob = new Matrix();
            Thread meinThread = new Thread(threadJob);
     
            meinThread.start();
        }
    }

    Vielen dank schon mal im vorraus für die Hilfe
     

  5. #5
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    hmm, da Matrix runnable , dann würde ich doch mal vorschlagen, dass Du (genau wie Deiner Testklasse) den Thread auch wirklich startest

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    
    public class MultListener implements ActionListener
    {
        public void actionPerformed( ActionEvent b ) 
        {
            Matrix m = new Matrix();
            m.run(); // ! ! !
        }
    }

    Gruß
    Klaus
    neuling-00 bedankt sich. 
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  6. #6
    neuling-00 neuling-00 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    oh mann...


    Klar...sowas von logisch oder
    Man sollte halt weiterdenken können (vorallem ich)

    Vielen vielen Dank...
     

  7. #7
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Oh vorsicht. Ein Thread wird nicht mit run gestartet sondern mit start(). run() ruft nur die run-Methode im selben Thread auf.
     

  8. #8
    neuling-00 neuling-00 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    ok?
    Leider hab ich das jetzt nicht verstanden..wie der name schon sagt...neuling-00..

    also sollte ich m.start();?

    aber das funktioniert nicht..
    in der Matrix Klasse rufe ich in der Main -Methode die start() auf...

    läuft das Program nicht als Thread?
     

  9. #9
    Kai008 Kai008 ist offline Mitglied Brillant
    Registriert seit
    May 2008
    Ort
    Brunn/Geb. (Niederösterreich)
    Beiträge
    944
    Blog-Einträge
    1
    Wenn du eine Klasse intialisierst wird der Konstruktor (Methode ohne Rückgabewert mit selben Namen wie Klasse) abgearbeitet. Du hast den Startbefehl aber in eine andere Methode einer anderen Klasse (deren Namen man groß schreibt) geschrieben. Diese wird aber nirgends aufgerufen.

    Also entweder schreibst du im ActionListener eben

    Code java:
    1
    
    new Thread(new Matrix()).start();
    ,

    Code java:
    1
    
    testlauf.main(null);
    oder fügst folgendes am Anfang der Klasse Matrix ein:

    Code java:
    1
    2
    3
    4
    
    public Matrix()
    {
        new Thread(this).start();
    }
    und setzt diese final.

    Aber warum erbst du nicht gleich von Thread? Kommt auf das selbe raus, nur dass du nicht gleich noch eine Instance anlegen musst.
    neuling-00 bedankt sich. 

Ähnliche Themen

  1. Java ActionListener aus anderer Klasse erstellen
    Von WhiteLie83 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 8
    Letzter Beitrag: 15.03.10, 20:30
  2. Klasse wo aufrufen?
    Von snowleopard im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 17.11.09, 00:24
  3. Antworten: 9
    Letzter Beitrag: 09.04.09, 16:48
  4. ActionListener ohne Action aufrufen.
    Von 115% im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 6
    Letzter Beitrag: 03.03.08, 16:33
  5. Actionlistener auf Button in anderer Klasse
    Von NoGi im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 20.02.04, 21:02