Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo zusammen, ich stehe völlig auf dem Schlauch und komme nicht weiter.
Ich möchte ein Programm schreiben, in welchem man ein Zeitintervall angibt. Irgendwann in diesem Intervall stoppt es dann, zeigt ein Bild und spielt ein Soundfile ab. Die einzelnen Methoden funktionieren auch, jedoch kann ich das irgendwie nicht verknüpfen.
Das Problem ist ganz unten.
Java:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.sound.sampled.*;
public class Ches {
class Bild1 {
public void main(String[] args)
{
JFrame frame = new JFrame();
JLabel imageLabel= new JLabel(new ImageIcon("Bild.jpg"));
frame.getContentPane().add(imageLabel);
frame.pack();
frame.show();
}
}
class SoundNeu {
public void main(String[] args) throws Throwable {
File myFile = new File("sound.au");
AudioInputStream myAS = AudioSystem.getAudioInputStream(myFile);
Clip myClip = AudioSystem.getClip();
myClip.open(myAS);
myClip.start();
Thread.sleep(2000);
System.out.println("Cheesi!");
}
}
public void main(String[] args) {
long MinZeit;
long MaxZeit;
long timer = 0;
long rand = 0;
System.out.println("Bitte Minimalzeit in Sekunden angeben:");
MinZeit = TextIO.getlnLong();
System.out.println("Bitte Maximalzeit in Sekunden angeben:");
MaxZeit = TextIO.getlnLong();
while(rand <= MinZeit || rand >= MaxZeit){
rand = (long)(Math.random() * 48)+1;
rand = rand;
}
for( timer = 0 ; timer == rand; timer++){
try {
Thread.sleep(1000);
}
catch(InterruptedException e) {
}
}
Ches c = new Ches();
c.Bild1(); //hier ist das Problem (cannot find symbol)
c.SoundNeu(); //hier ist das Problem (cannot find symbol)
}}
Bild1 und SoundNeu sind innere Klassen von Ches und keine Methoden!
Weiss zwar nicht was Du genau vorhast, aber leg doch zwei Methoden in Ches an und kopiere den Inhalt der beiden main Methoden aus diesen Klassen in jeweils eine der Methoden.
Ich weiss, ist nicht gerade hübsch geschrieben...
Ich hab's jetzt geändert. Das lässt sich sogar kompilieren, jedoch nicht ausführen, da kommt immer die Fehlermeldung: "Exception in thread "main" java.lang.NoSuchMethodError: main.
Java:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.sound.sampled.*;
public class Ches {
public void Bild1() {
JFrame frame = new JFrame();
JLabel imageLabel= new JLabel(new ImageIcon("Bild.jpg"));
frame.getContentPane().add(imageLabel);
frame.pack();
frame.show();
}
public void SoundNeu() {
try {
File myFile = new File("sound.au");
AudioInputStream myAS = AudioSystem.getAudioInputStream(myFile);
Clip myClip = AudioSystem.getClip();
myClip.open(myAS);
myClip.start();
Thread.sleep(2000);
System.out.println("Cheesi!");
}
catch(Exception e) {}
}
public void main(String[] args) {
long MinZeit;
long MaxZeit;
long timer = 0;
long rand = 0;
System.out.println("Bitte Minimalzeit in Sekunden angeben:");
MinZeit = TextIO.getlnLong();
System.out.println("Bitte Maximalzeit in Sekunden angeben:");
MaxZeit = TextIO.getlnLong();
while(rand <= MinZeit || rand >= MaxZeit){
rand = (long)(Math.random() * 48)+1;
rand = rand;
}
for( timer = 0 ; timer == rand; timer++){
try {
Thread.sleep(1000);
}
catch(InterruptedException e) {
}
}
Ches c = new Ches();
c.Bild1();
c.SoundNeu();
}}
Ja klar, ich sag' ja, dasss ich auf dem Schlauch stehe
Jetzt funktioniert nur das mit dem Timer noch nicht, aber das krieg ich schon noch hin.
Danke für die Geduld und Hilfe.