Hallo Java-Forum Community,
ich bin momentan am lernen mit dem Buch "Java von Kopf bis Fuß", allerdings bin ich bei diesem auf ein Problem gestoßen. Auf der Seite 346 (Für die, die das Buch besitzen).
Es handelt sich um ein Musik Programm. Und zwar steht hier geschrieben, dass man mit Hilfe von Argumenten, die man in die Kommandozeile eingeben muss, das Instrument und die Tonhöhe verändern kann. Erlaubt sind für beide Parameter Werte von 1-127.
Da meine Google Suchaktion leider keine befriedigenden Ergebnisse brachte, dachte ich mir ich frag hier mal nach. Ich habe bereits erfahren, das man unter Run --> Run Configuration --> Arguments solche Parameter setzen kann, zumindest nehme ich das jetzt mal so an, wenn es nicht stimmt mich bitte darauf hinweisen.
Also hab ich einfach mal in den Programm arguments folgendes eingegeben: 10, 50
dachte mir 2 Parameter sollte ja so stimmen, ausgeführt und dann erhalte ich folgende Exception
Dazu hier mal noch der Code, der Code ist eher eine Art Fertiggericht und richtig abgetippt sollte ich es auch haben.
Ich bin mir sicher, dass mir jemand von euch weiterhelfen kann. Vielen Dank.
Gruß
GEEK!
ich bin momentan am lernen mit dem Buch "Java von Kopf bis Fuß", allerdings bin ich bei diesem auf ein Problem gestoßen. Auf der Seite 346 (Für die, die das Buch besitzen).
Es handelt sich um ein Musik Programm. Und zwar steht hier geschrieben, dass man mit Hilfe von Argumenten, die man in die Kommandozeile eingeben muss, das Instrument und die Tonhöhe verändern kann. Erlaubt sind für beide Parameter Werte von 1-127.
Da meine Google Suchaktion leider keine befriedigenden Ergebnisse brachte, dachte ich mir ich frag hier mal nach. Ich habe bereits erfahren, das man unter Run --> Run Configuration --> Arguments solche Parameter setzen kann, zumindest nehme ich das jetzt mal so an, wenn es nicht stimmt mich bitte darauf hinweisen.
Also hab ich einfach mal in den Programm arguments folgendes eingegeben: 10, 50
dachte mir 2 Parameter sollte ja so stimmen, ausgeführt und dann erhalte ich folgende Exception
Java:
Exception in thread "main" java.lang.NumberFormatException: For input string: "10,"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at MiniMusikKommZeile.main(MiniMusikKommZeile.java:14)
Dazu hier mal noch der Code, der Code ist eher eine Art Fertiggericht und richtig abgetippt sollte ich es auch haben.
Java:
import javax.sound.midi.*;
public class MiniMusikKommZeile {
public static void main(String[] args) { // unsere 2. Version
MiniMusikKommZeile mini = new MiniMusikKommZeile();
if(args.length<2){
System.out.println("Vergessen Sie nicht Instrument- und Ton-Argument.");
}else{
int instrument = Integer.parseInt(args[0]);
int ton = Integer.parseInt(args[1]);
mini.spielen(instrument, ton);
}
}
public void spielen(int instrument, int ton){
try{
Sequencer player = MidiSystem.getSequencer();
player.open();
Sequence seq = new Sequence(Sequence.PPQ, 4);
Track track = seq.createTrack();
ShortMessage first = new ShortMessage();
first.setMessage(192, 1, instrument, 0);
MidiEvent instrumentWechsel = new MidiEvent(first, 1);
track.add(instrumentWechsel);
ShortMessage a = new ShortMessage(); // FertigCode
a.setMessage(144, 1, ton, 100);
MidiEvent noteOn = new MidiEvent(a, 1);
track.add(noteOn);
ShortMessage b = new ShortMessage(); // FertigCode
b.setMessage(128, 1, ton, 100);
MidiEvent noteOff = new MidiEvent(b, 16);
track.add(noteOff);
player.setSequence(seq);
player.start();
Thread.sleep(5000);
player.close();
}catch (Exception ex){
ex.printStackTrace();
}
}
}
Ich bin mir sicher, dass mir jemand von euch weiterhelfen kann. Vielen Dank.
Gruß
GEEK!