Klassenmethode aus anderer Klasse aufrufen

Status
Nicht offen für weitere Antworten.

babuschka

Top Contributor
Ich hab ein kleines Problem:
Ein Thread (also eine andere Klasse) muss ein Label aus einer anderen Klasse verändern. Und das jede Sekunde. Jetzt muss das jede Sekunde geschehen. Ich hab das folgendermaßen gemacht:
Einen Timer erstellt, der jede Sekunde eigentlich getPlaylength() aufrufen soll (gaaanz unten). Aber dieZeile ist falsch. also wie mach iches, dass die methode in klasse noise aus klasse PlaylengthTimer aufgerufen werden kann? (Der code ist extrem gekürzt, sollte aber das wichtigste enthalten.


Code:
/*
 * Noise.java
 *
 * Created on 4. Juli 2004, 12:39
 */

import java.awt.*;
import java.text.*;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;
import javax.media.*; // JMF

public class Noise extends JFrame implements ControllerListener {
    
    /** All used variables */
    private Player player;
    private Timer timer = new Timer();
    
    // initSetLookAndFeel()
    private String LookAndFeel;
    
    // getPlaylength()
    private int seconds, minutes;
    private Time time, mediaTime;
    private DecimalFormat df;
    
    /** Creates new form Noise */
    public Noise() {
        initComponents();
    }
    
    private void initComponents() {
        lblPlaylength = new javax.swing.JFormattedTextField();
     }

    private void bPlayActionPerformed(java.awt.event.ActionEvent evt) {
        if(player != null)
            player.start();
       [b] timer.schedule(new PlaylengthTimer(), 1000, 1000);[/b]
    }

    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]){
        new Noise().show();
    }
   
    public void getPlaylength() {
        time = player.getDuration();
        mediaTime = player.getMediaTime();
        
        
        seconds = (int)Math.floor(time.getSeconds() - mediaTime.getSeconds()); // Total amount of seconds
        minutes = (int)Math.floor((time.getSeconds() / 60)); // Total amount of minutes
        seconds = seconds - minutes * 60; // Seconds left
        
        df = new DecimalFormat("00");
       lblPlaylength.setText("-" + String.valueOf(df.format(minutes)) + ":" + String.valueOf(df.format(seconds))); // -02:21
    }
    
    public void controllerUpdate(ControllerEvent controllerEvent) {
        if(controllerEvent instanceof EndOfMediaEvent) {
            if(player != null) {
                player.stop();
                player.setMediaTime(new Time(0));
                player.deallocate();
            }
        }
    }
    
    // Variables declaration - do not modify
    private javax.swing.JFormattedTextField lblPlaylength;
    // End of variables declaration
}

class PlaylengthTimer extends TimerTask
{
  public void run()
  {
    Noise.getPlaylength();
  }
}
 
H

Hammington

Gast
die Methode getPlaylength() sollte static sein (public static void), dann müsste es funzen
 

babuschka

Top Contributor
Fehlermedung ist folgende:

Noise.java [442:1] non-static method getPlaylength() cannot be referenced from a static context
Noise.getPlaylength();
^
1 error
Errors compiling Noise.

Wenn ich jetzt aber public static void getPlaylength mache, bekomme ich 18 fehler:

Noise.java [391:1] non-static variable time cannot be referenced from a static context
time = player.getDuration();
^
Noise.java [391:1] non-static variable player cannot be referenced from a static context
time = player.getDuration();
^
Noise.java [392:1] non-static variable mediaTime cannot be referenced from a static context
mediaTime = player.getMediaTime();
^
Noise.java [392:1] non-static variable player cannot be referenced from a static context
mediaTime = player.getMediaTime();
^
Noise.java [395:1] non-static variable seconds cannot be referenced from a static context
seconds = (int)Math.floor(time.getSeconds() - mediaTime.getSeconds()); // Total amount of seconds
^
Noise.java [395:1] non-static variable time cannot be referenced from a static context
seconds = (int)Math.floor(time.getSeconds() - mediaTime.getSeconds()); // Total amount of seconds
^
Noise.java [395:1] non-static variable mediaTime cannot be referenced from a static context
seconds = (int)Math.floor(time.getSeconds() - mediaTime.getSeconds()); // Total amount of seconds
^
Noise.java [396:1] non-static variable minutes cannot be referenced from a static context
minutes = (int)Math.floor((time.getSeconds() / 60)); // Total amount of minutes
^
Noise.java [396:1] non-static variable time cannot be referenced from a static context
minutes = (int)Math.floor((time.getSeconds() / 60)); // Total amount of minutes
^
Noise.java [397:1] non-static variable seconds cannot be referenced from a static context
seconds = seconds - minutes * 60; // Seconds left
^
Noise.java [397:1] non-static variable seconds cannot be referenced from a static context
seconds = seconds - minutes * 60; // Seconds left
^
Noise.java [397:1] non-static variable minutes cannot be referenced from a static context
seconds = seconds - minutes * 60; // Seconds left
^
Noise.java [399:1] non-static variable df cannot be referenced from a static context
df = new DecimalFormat("00");
^
Noise.java [400:1] non-static variable minutes cannot be referenced from a static context
lblPlaylength.setText("-" + String.valueOf(df.format(minutes)) + ":" + String.valueOf(df.format(seconds))); // -02:21
^
Noise.java [400:1] non-static variable df cannot be referenced from a static context
lblPlaylength.setText("-" + String.valueOf(df.format(minutes)) + ":" + String.valueOf(df.format(seconds))); // -02:21
^
Noise.java [400:1] non-static variable seconds cannot be referenced from a static context
lblPlaylength.setText("-" + String.valueOf(df.format(minutes)) + ":" + String.valueOf(df.format(seconds))); // -02:21
^
Noise.java [400:1] non-static variable df cannot be referenced from a static context
lblPlaylength.setText("-" + String.valueOf(df.format(minutes)) + ":" + String.valueOf(df.format(seconds))); // -02:21
^
Noise.java [400:1] non-static variable lblPlaylength cannot be referenced from a static context
lblPlaylength.setText("-" + String.valueOf(df.format(minutes)) + ":" + String.valueOf(df.format(seconds))); // -02:21
^
18 errors
Errors compiling Noise.
 
H

Hammingotn

Gast
musst alle variablen die von der statischen Methode aufgerufen werden auch statisch deklarieren sonst gehts nicht =))
 

babuschka

Top Contributor
Gut, ich hab jetzt einfach mal alles static gemacht, was ich brauchte. Jetzt bvekomme ich nur noch einen Fehler. Aberich kann dami nichts anfangen!

Noise.java [386:1] non-static variable this cannot be referenced from a static context
player.addControllerListener(this);
^
1 error
Errors compiling Noise.
 
R

Roar

Gast
ähm... alles statisch zu machen ist wohl ein bisschen überflüssig, oder? wieso übergibst du deinem trhead nicht einfach die instanz von deinem JLabel oder deiner Klasse oder was auch immer?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
R Implementieren einer iterativen und rekursiven Klassenmethode. Java Basics - Anfänger-Themen 1
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
K Klassenmethode mit übergebenen Parameter speichern Java Basics - Anfänger-Themen 7
W Neue Klassenmethode implementieren.. Java Basics - Anfänger-Themen 6
A Schaltjahre, Klassenmethode, Parametertyp Java Basics - Anfänger-Themen 6
J Klassen Klassenmethode um Variable zu ändern Java Basics - Anfänger-Themen 7
D Klassenmethode: Befehl erkennen, dann int zurückgeben Java Basics - Anfänger-Themen 2
D in Mainmethode auf Werte aus Klassenmethode zugreifen Java Basics - Anfänger-Themen 9
K Rückgabewert einer Klassenmethode Java Basics - Anfänger-Themen 7
H Innerhalb eines Package wird eine Klassenmethode nicht gefunden. Java Basics - Anfänger-Themen 2
T Erste Schritte Klassenmethode für Zahlentupel Java Basics - Anfänger-Themen 2
S OOP Klassenmethode in andere Methode? Java Basics - Anfänger-Themen 5
F Klassenmethode Arrays.sort(Object[]a) Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
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
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
pkm Eclipse wie mit anderer JAVA-Version starten? Java Basics - Anfänger-Themen 1
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
PaperHat Methoden als Parameter anderer Methode verwenden Java Basics - Anfänger-Themen 11
T OOP GUI aus anderer Klasse updaten Java Basics - Anfänger-Themen 6
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
M String zerlegen anhand anderer String Java Basics - Anfänger-Themen 6
deatzi Wert aus anderer Klasse lesen Java Basics - Anfänger-Themen 7
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
C Methoden Auf Methoden anderer Klassen zugreifen Java Basics - Anfänger-Themen 10
S Eingabe in anderer Klasse verwenden Java Basics - Anfänger-Themen 3
T Methoden Auf Variabler aus anderer Methode zugreifen Java Basics - Anfänger-Themen 5
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
L Klassen Methode aus anderer Klasse Java Basics - Anfänger-Themen 13
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
M Klassen Methode aus anderer Klasse nicht aufrufbar Java Basics - Anfänger-Themen 11
arjoopy Methoden Methoden anderer Klassen Java Basics - Anfänger-Themen 6
J Button in anderer Klasse ändern Java Basics - Anfänger-Themen 3
E Referenzvariable in anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
E Klassen Referenzvariable in anderer Klasse aufrufen. Java Basics - Anfänger-Themen 1
M Neu instanzierte Klasse übernimmt Werte von anderer Instanz Java Basics - Anfänger-Themen 4
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Java Basics - Anfänger-Themen 0
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
G Variablen Verwendung von Variablen in anderer Klasse Java Basics - Anfänger-Themen 6
1 Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
S Klassen Instanz anderer Klasse raus geben Java Basics - Anfänger-Themen 1
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
B Klassen Auf Instanz anderer Klasse zugreifen Java Basics - Anfänger-Themen 1
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
N Variablen Variable in Main deklarieren und in anderer Methode nutzen Java Basics - Anfänger-Themen 12
Z Wie Objekte anderer Klassen ansprechen? Java Basics - Anfänger-Themen 2
U Code anderer Programmierern verstehen Java Basics - Anfänger-Themen 2
B Liste in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
F Methoden aus anderer classe über nehmen Java Basics - Anfänger-Themen 10
F ArrayListen auf anderer Klasse implementieren Java Basics - Anfänger-Themen 4
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
W OOP Member anderer Klassen erreichen Java Basics - Anfänger-Themen 1
X Gwt DnD, Drag auf Droparea in anderer Klasse? Java Basics - Anfänger-Themen 0
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
T Variablen anderer Klassen Java Basics - Anfänger-Themen 1
T Vererbung Variable aus anderer Klasse verwenden Java Basics - Anfänger-Themen 8
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
R Hashmap in anderer Klasse nicht benutzbar Java Basics - Anfänger-Themen 1
P Methoden Methode in anderer Methode aufrufen Java Basics - Anfänger-Themen 4
Jackii Globale Variable aus anderer Klasse ändern... Java Basics - Anfänger-Themen 4
L Erste Schritte Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 16
Mr. Pink Graphics2D in anderer Methode aufrufen Java Basics - Anfänger-Themen 6
W Frame in anderer Klasse anzeigen lassen Java Basics - Anfänger-Themen 1
T Variable aus anderer Klasse Java Basics - Anfänger-Themen 3
A Import anderer Classen aus anderen Projekten Java Basics - Anfänger-Themen 6
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
G ArrayList in anderer Klasse verwenden Java Basics - Anfänger-Themen 31
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
G Objekt wie Objekt anderer Klasse behandeln Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben