Dziedziczenie metody

0

Witam!
W projekcie używam 2 klasy.

MainClass.java
Music.java

MainClass importuje import src.Skatty.Music;

W klasie music jest dzialajacy kod odtwarzania pliku .wav.
Chcę dodać linijkę uruchamiającą clip.start w klasie MainClass gdy naciśnie się CTRL.
Klasa Music wygladą tak :

import javax.sound.sampled.*;
import java.io.*;
public class Music
{
  public static void main(String[] args) throws Exception
  {
     File soundFile = new File("Sword1.wav");
     AudioInputStream soundIn = AudioSystem.getAudioInputStream(soundFile);
     AudioFormat format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
                   AudioSystem.NOT_SPECIFIED,
                   16, 2, 4,
                   AudioSystem.NOT_SPECIFIED, true);
     DataLine.Info info = new DataLine.Info(Clip.class, format);

     Clip clip = (Clip)AudioSystem.getLine(info);
     clip.open(soundIn);
     clip.start();
     while(clip.isRunning())
     {
        Thread.yield();
     }
  }
}

dodaję do MainClass

	if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
			System.out.print("HIT!");
			super.clip.start();
		}

przy kompilacji wyskakuje:

cannot find symbol variable clip
Proszę o pomoc. Z góry dziękuję.

0

Po pierwsze, zmienna clip jest zmienną lokalną metody main klasy Music. Nie jest widoczna nigdzie poza tą metodą. Zamień clip na pole w klasie Music.
Po drugie, klasa MainClass powinna zawierac referencję do obiektu klasy Music (można ją przekazać np. w konstruktorze), uruchomienie klipu wyglądało by tak:

     if (e.getKeyCode() == KeyEvent.VK_CONTROL))
         m.clip.start(); //m jest referencją do obiektu klasy Music
     }

Po trzecie, jaki to ma związek z dziedziczeniem metod?

1 użytkowników online, w tym zalogowanych: 0, gości: 1