Mit Java Musik machen?

Cherryrose

Mitglied
Hallo, ich habe eine Aufgabe bekommen, in der ich mit Java Musik machen soll. Ich arbeite mit Eclipse. Ich habe folgende Idee: Wenn man als Nutzer eine Tonleiter angibt (z.B. C-Dur) dann kommt eine Melodie in C-Dur. Und wenn man eine andere eingibt, kommt die gleiche Melodie in der anderen. Die Melodie würde ich dann selber spielen und einbauen.

Ich habe es schonmal geschafft, dass wenn ich ausführe eine Melodie kommt. Doch wie mache ich, dass der Nutzer erst eingeben muss, wie die Melodie ist? Dachte mir so mit if, weiß aber von selbst nicht genau wie das geht.

Würde mich sehr über Hilfe freuen!
 

Gucky

Top Contributor
"Ich dachte mir so mit if[...]" :lol:
Ja. Damit bist du schon mal auf dem richtigen Weg. :D

Wie genau soll es denn eingestellt werden können? Soll der Nutzer ein richtiges Lied "programmieren" können?
 

Phash

Top Contributor
Deiner Ausdrucksweise nach zu urteilen, bist du Newbie.

Von daher schlage ich dir folgende Vorgehensweise vor:
1. Erstelle das Programm so, dass du im code vorgibst, welche tonart gespielt werden soll.
2. Ändere das Programm so, dass es nacheinander 3 verschiedene tonarten abspielt.
3. Ändere das Programm so, dass du mit if oder switch case verschiedene Bedingungen prüfen kannst, und du nur mit einem Parameter die tonart ändern kannst.

4. Bau eine abfrage von der Tastatur ein, auf die du reagierst.
5. Verbessere deinen code
6. Stell die tastatureingabe auf eine graphische Eingabe um
 

Cherryrose

Mitglied
Also, es stimmt schon, ich habe bis jetzt nur so in der Schule den Anfang gelernt, aber diese Augabe ist völlig anders.
Bis jetzt habe ich es geschafft, dass eine Melodie spielt, bloß weiß noch nicht wie ich das so einbaue, dass ich zB 4 Melodien zur Wahl habe.

Java:
package samples;

import java.io.*;
import sun.audio.*;
public class audio {
	
	public static void main(String[] args) 
	throws Exception
	{	
		String wav_file = "C:/Users/Public/Music/Sample Music/Natur4.wav"; //
		
		InputStream in = new FileInputStream(wav_file);
		
		AudioStream audio = new AudioStream(in);
		AudioPlayer.player.start(audio); 		
	}
}
 

kaoZ

Top Contributor
Hier mal in PsuedoCode wir wollen ja nicht alles verraten :

Java:
if(userEingabe.equals("mol"){
   AudioPlayer.play();
}
if(userEingabe.equals("dur")){
   AudioPlayer.play();
}

man könnte dies auch elegant mit einem Switch lösen , dies würde dann folgendermaßen aussehen.

Java:
switch(userEingabe){
 case "mol":
     AudioPlayer.play(...);
 break;
 case "dur":
     AudioPlayer.play(...);
 break;
}

in beiden fällen sollte dir aufgefallen sein das es sich bei userEingabe um einen String handelt, welcher per equals(Object o); auf Inhaltliche gleichheit mit dem in der Bedingung angegebenen String verglichen wird.

Zum einlesen der Nutzereingaben solltest du insofern du ohne GUI arbeitest dir die Klasse Scanner mal genauer anschauen :)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Java:
public class audio

Klassen Schreibt man Groß !

zudem wenn du dies so machen möchtest musst du den AudioPlayer im Konstruktor übergeben da sonst deine Klasse Audio keine Kenntnis von deinem Player hat .

Java:
public class Audio{

 AudioPlayer player;

 public Audio(AudioPlayer player){
    this.player = player;
 }
 void melodie(){
 
  ...
 }
 }


}

Insofern die Klasse AudioPlayer von dir erstellt ist würde ich auch eher aus OOP Sicht die Melodien diesem Player übergeben, und die Melodien in einer Separaten Klasse realisieren und als Objekte behandeln ;)

Quasi

Java:
public AudioPlayer(Melody...melodies){....}

so kannst du dann deinem Player die Songs/Melodien oder whatever übergeben und dieser spielt diese dann ab.

Hier mal ein fiktives Besipiel was ich meine , OHNE funktionale implementierung, rein zur veranschaulichung !

Song.java
Java:
public class Song {
	
	File file;
	
	public Song(String filePath) {
	   this.file = new File(filePath);
    }
	
	public String getName() 		{return this.file.getName();}

}

AudioPlayer.java
Java:
public class AudioPlayer {
	
	private Song[] songs;
	
	public AudioPlayer() {}
	
	public AudioPlayer(Song...songs) {
		this.songs = songs;
    }

	public void addSongs(Song...songs){
		this.songs = songs;
	}
	
	public void play(Song song){
		System.out.println(song.getName());
	}
	
	public Song[] getSongs() 				{return this.songs;}
}

AudioTest.java
Java:
public class AudioTest {

	
	public static void main(String[] args) {
	    
		AudioPlayer player = new AudioPlayer();
		
		Song one = new Song("C:/MySong.wav");
		Song two = new Song("G:/ExampleSong.wac");
		
		player.addSongs(one,two);
		
		/*
		 * Hier kannst du sehen wie das mit dem switch
		 * funktionieren würde.
		 */
		
		Scanner sc = new Scanner(System.in);
		
		switch(sc.nextLine()){
		case "mol":
			player.play(one);
			break;
		case "dur":
			player.play(two);
			break;
		}
		sc.close();
		
    }
}
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Java:
package samples;
import java.util.*;
import java.io.*;
import sun.audio.*;
public class Audio {
	
AudioPlayer player;  

public Audio(AudioPlayer player){    
	
	this.player = player; } 
public static void main(String[] args)

		String tonleiter="C-Dur";
		switch(C-Dur){
		case "C-Dur":
			AudioPlayer.play("C:/Users/Ela/Music/C-Dur.wav"); 
			break;
		case "D-Dur":
			AudioPlayer.play("C:/Users/Ela/Music/D-Dur.wav"); 
			break;
		case "G-Dur":
			AudioPlayer.play("C:/Users/Ela/Music/G-Dur.wav"); 
			
			InputStream in = new FileInputStream(wav_file);
			
			AudioStream audio = new AudioStream(in);
			AudioPlayer.player.start(audio); 
		}
	}

So, das hab ich bisher. "AudioPlayer player;" wie ist das gemeint, das verstehe ich nicht, soll das alleine so stehen oder kommt noch was dazu?
Und AudioPlayer bzw. AudioPlayer.play wird überall unterstrichen. Dazu auch noch C-Dur bei switch und wav_file.
Vielen Dank für deine Hilfe!!!! :)

Edit: Müssen alle 3 erstellt werden? Ich kenne das noch nicht so. Wäre schön, wenn du das anhang meiner aufgabe dies erklären könntest!
 

kaoZ

Top Contributor
Du hast es doch schon hinbekommen musik abzuspielen ?!

dann sollte die Fallunterscheidung eigentlich nicht so das Problem sein.

Poste doch bitte mal die Klasse AudioPlayer und Audio in ihrer ursprungsform.

Dann gehen wir das mal zusammen durch und schauen wie du es am innovativsten umsetzt ;)
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Also AudioPlayer hatte ich bis du es geschrieben hast noch nicht. Das ist das was du geschrieben hast nur mit Audio statt Song, doch ich weiß nicht recht, was genau ich damit machen soll und was alles noch eingefügt werden muss.
Java:
package samples;
public class AudioPlayer {
	private Audio[] songs;

	public AudioPlayer() {}

	public AudioPlayer(Audio...songs) {
		this.songs = songs;
	}

	public void addSongs(Audio...songs){
		this.songs = songs;   
	}        
	public void play(Audio song){
		System.out.println(song.getName());
	}        
	public Audio[] getSongs()
	{return this.songs;}

	}

Das war Audio, muss man dies für jedes Lied erstellen oder ist es allgemein?
Und auch da, was muss ich noch dazufügen?

Java:
package samples;

import java.io.File;

public class Audio {
	
	File file;
	
	public Audio(String filePath) {
		this.file = new File(filePath);
	} 
	public String getName()
	{return this.file.getName();} 
	
}

Wäre schön, wenn du mir auch morgen weiter hilfst, heute ist es ja schon spät! :)
 

kaoZ

Top Contributor
Na gut , dann fangen wir mal langsam an ;)

1. Wir erstellen uns eine Klasse, dessen Objekte nachher unsere Sounds / Töne Darstellen,
diese nennen wir Sound

Sound.java :

Java:
import java.io.File;

/**
 * 
 * @author kaoZ
 * 
 * Diese Klasse hat keine andere Funktion als lediglich
 * den Pfad und einen Namen zu einer AudioDatei zu speichern,
 * man könnte also sagen Objekte dieser Klasse sind unsere Sounds,
 * welche wir später abspielen wollen.
 *
 */

public class Sound {
	
	private String name;
	private File file;
	
	public Sound(String name, String filePath) {
		this.name = name;
		this.file = new File(filePath);
    }
	
	public String getName() 		{return this.name;}
	public File getFile() 			{return this.file;}
}

Jetzt schreiben wir uns einen Player welcher später dann diese Sounds abspielen können soll,
hier erstellen wir nun erstmal eine gewisse basisfunktionalität, damit man Töne zu einer Playlist hinzufügen und löschen, nach Titel suchen kann , und zu guter letzt die Dateien auch abspielen kann.

AudioPlayer.java (hier erstmal nur die Basisfunktionalität):

Java:
import java.util.ArrayList;

public class AudioPlayer {
	
	private ArrayList<Sound> playList;
	
	public AudioPlayer() {
		this.playList = new ArrayList<>();
	}
	
	public AudioPlayer(Sound...songs) {
		this.playList = new ArrayList<>();
		addToPlayList(songs);
    }

	public void addToPlayList(Sound...songs){
		for (Sound sound : songs) {
	        getPlayList().add(sound);
        }
	}
	
	public void removeFromPlayList(Sound sound){
		for (int i = 0; i < playList.size(); i++) {
	        if (playList.get(i).getName().equals(sound)) {
	            playList.remove(i);
            }
        }
	}
	
	//Achtung , kann NPE auslösen , hier ist handlungsbedarf !
	
	public Sound getSongByName(String name){
		
		Sound sound = null;
		
		for (int i = 0; i < playList.size(); i++) {
	        if (playList.get(i).getName().equals(name)) {
	           sound = playList.get(i);
	        }
        }
		return sound;
		
	}
	
	public void play(Sound song){
		//Hier werden dann die einzelnen Songs dann abgespielt
	}
	
	public ArrayList<Sound> getPlayList()  		{return this.playList;}
}
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Hier jetzt die implementierung der play Methode, füge diesen code nun oben in das Beispiel ein :

Java:
public void play(Sound song){
        try {
	        AudioInputStream stream = AudioSystem.getAudioInputStream(song.getFile());
	        AudioFormat audioFormat = stream.getFormat();
	        DataLine.Info info = new DataLine.Info(Clip.class, audioFormat);
	        Clip clip = (Clip) AudioSystem.getLine(info);
	        clip.open(stream);
	        clip.start();
	        clip.start();
	        
	        while(clip.getFramePosition() < clip.getFrameLength()) {
	        	
	        	 
	        };
 
        } catch (Exception e) {
	        // TODO: handle exception
        }
    }

Erstelle nun zum testen eine Klasse AudioTest die wie folgt aussieht :

(bei path gibt einen Pfad zu einer deiner .wav dateien an ! )

AudioTest.java

Java:
public class AudioTest {

	public static void main(String[] args) {
	  
		String path = "L:/Cinema 4d/tex/tutorials/maxon_technoloop2.wav";
		
		Sound wave = new Sound("Wave",path);
		
		AudioPlayer player = new AudioPlayer();
		
		player.play(wave);
    }
}

Da es hier nur darum geht dir zu zeigen wie man wav dateien abspielt sollte dies nun schon klappen,

diesen Teil :

Java:
 while(clip.getFramePosition() < clip.getFrameLength()) {
	        	
	        	 
	        };

habe ich in der play Methode nun nur zu Testzwecken implementiert, in einer richtigen Implementierung würde man die Frames vorher auslesen und danach die Bedingung richten, fügst du diesen Code nun allerdings in diesem Beispiel nicht hinzu , beendet dein Programm bevor die Datei abgespielt wird, hier könnte man das Abspielen auch in einem Extra gestarteten Thread erledigen, dies würde hier allerdings zu weit gehen.

Teste bitte mal ob es bei dir so funktioniert, und gib mir Rückmeldung, dann können wir weitermachen, falls du irgendetwas nicht verstehen solltest, lass es mich wissen ;)
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Tut mir leid dass ich mich gestern nicht gemeldet habe.
Also, ich habe alles so erstellt wie du es geschrieben hast. Bin bloß bei dem "Implentieren" stecken geblieben, da ich nicht genau weiß wo hin.
 

kaoZ

Top Contributor
Ok hier nochmal alle Klasse wie sie nun sein sollten :


Java:
import java.io.File;

/**
 * 
 * @author kaoZ
 * 
 * Diese Klasse hat keine andere Funktion als lediglich
 * den Pfad und einen Namen zu einer AudioDatei zu speichern,
 * man könnte also sagen Objekte dieser Klasse sind unsere Sounds,
 * welche wir später abspielen wollen.
 *
 */

public class Sound {
	
	private String name;
	private File file;
	
	public Sound(String name, String filePath) {
		this.name = name;
		this.file = new File(filePath);
    }
	
	public String getName() 		{return this.name;}
	public File getFile() 			{return this.file;}
}


Java:
import java.util.ArrayList;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;

public class AudioPlayer {
    
    private ArrayList<Sound> playList;
    
    public AudioPlayer() {
        playList = new ArrayList<>();
    }
    
    public AudioPlayer(Sound...songs) {
        super();
        addToPlayList(songs);
    }
 
    public void addToPlayList(Sound...songs){
        for (Sound sound : songs) {
            getPlayList().add(sound);
        }
    }
    
    public void removeFromPlayList(Sound sound){
        for (int i = 0; i < playList.size(); i++) {
            if (playList.get(i).getName().equals(sound)) {
                playList.remove(i);
            }
        }
    }
    
    //Achtung , kann NPE auslösen , hier ist handlungsbedarf !
    
    public Sound getSongByName(String name){
        
        Sound sound = null;
        
        for (int i = 0; i < playList.size(); i++) {
            if (playList.get(i).getName().equals(name)) {
               sound = playList.get(i);
            }
        }
        return sound;
        
    }
    
    public void play(Sound song){
        try {
	        AudioInputStream stream = AudioSystem.getAudioInputStream(song.getFile());
	        AudioFormat audioFormat = stream.getFormat();
	        DataLine.Info info = new DataLine.Info(Clip.class, audioFormat);
	        Clip clip = (Clip) AudioSystem.getLine(info);
	        clip.open(stream);
	        clip.start();
	        clip.start();
	        
	        while(clip.getFramePosition() < clip.getFrameLength()) {
	        	
	        	 // Nur zum testen so implementiert
	        };
 
        } catch (Exception e) {
	        //Hier werden wir dann ExceptionHandling betreiben !
        }
    }
    
    public ArrayList<Sound> getPlayList()       {return this.playList;}
}


Java:
public class AudioTest {

	public static void main(String[] args) {
	  
		String path = "L:/Cinema 4d/tex/tutorials/maxon_technoloop2.wav";
		
		Sound wave = new Sound("Wave",path);
		
		AudioPlayer player = new AudioPlayer();
		
		//Song zur Playlist hinzufügen, anhand des Names aus der Playlist laden + abspielen
		player.addToPlayList(wave);	
		player.play(player.getSongByName("Wave"));
		
		//Oder Song direkt abspielen
		//player.play(wave);
    }
}

Versuch mal das nachzuvollziehen , und wenn du Fragen hast stell diese, dann können wir uns um den Rest kümmern , wie Fehlerbehandlung und die Beseitigung der NPE bei nicht gefundenem Titel in der Playlist :)
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Yay, es funktioniert, aber es spielt nur ein Lied ab ohne eine Auswahl zu haben. Genau dies hatte ich bereits auf eine andere Weise auch geschafft.

Du hast am Anfang noch mir etwas mit case gezeigt, wie füge ich das da rein, damit der Nutzer eine Auswahl hat? :)
 

kaoZ

Top Contributor
Dazu kommen wir nun als nächstes, ich bin allerdings Grade unterwegs, sobald ich morgen zu Hause bin zeige ich dir wie du die playlist füllst und dann dem User ermöglichst verschiedene Sounds auszuwählen :)
 

kaoZ

Top Contributor
So , dann wollen wir mal ! ;)

Also

Hier mal die Klasse AudioTest wie man sie erstellen könnte :

Java:
public class AudioTest {
	
	Scanner sc;
	AudioPlayer player;
	String path;
	
	public AudioTest() {
	   sc = new Scanner(System.in);
	   player = new AudioPlayer();
	   path = "L:/OpenOffice/share/gallery/sounds/";
	   
	   fillPlaylist();
    }
	
	public void fillPlaylist(){
		
		Sound one	 = new Sound("one",path + "cow.wav");
		Sound two	 = new Sound("two",path + "curve.wav");
		Sound three	 = new Sound("three",path + "drame.wav");
		Sound four	 = new Sound("four",path + "explose.wav");
		Sound five	 = new Sound("five",path + "falling.wav");
		
		getPlayer().addToPlayList(one, two, three, four, five);
	}
	
	public void startSession(){
		boolean running = true;
		
		while (running) {
	        String input = sc.nextLine();
	        
	        if (input.equals("stop")) {
	            running = false;
	            sc.close();
            }
	        while(running){
	        	player.play(player.getSongByName(input));
	        	break;
	        }
        }
	}
	
	public AudioPlayer getPlayer() 				{return this.player;}

	public static void main(String[] args) {
	  
		new AudioTest().startSession();
		
    }
}

Nun zur Erklärung :

Der Konstruktor :

Java:
	public AudioTest() {
	   sc = new Scanner(System.in);
	   player = new AudioPlayer();
	   path = "L:/OpenOffice/share/gallery/sounds/";
	   
	   fillPlaylist();
    }

Hier werden der
Code:
Scanner
für die Nutzereingabe, der
Code:
AudioPlayer
und der
Code:
Pfad
welcher die Sounds ( in meinem Fall ) beinhaltet angegeben, zusätzlich wird die methode
Code:
fillPlaylist();
aufgerufen welche die Playlist initialisiert, kann man auch per eingabe machen , für das Beispiel reicht es aber so , hier nun die Methode
Code:
fillPlaylist();

Java:
public void fillPlaylist(){
		
		Sound one	 = new Sound("one",path + "cow.wav");
		Sound two	 = new Sound("two",path + "curve.wav");
		Sound three	 = new Sound("three",path + "drame.wav");
		Sound four	 = new Sound("four",path + "explose.wav");
		Sound five	 = new Sound("five",path + "falling.wav");
		
		getPlayer().addToPlayList(one, two, three, four, five);
	}

Diese Methode übernimmt das initialisieren der Playlist des AudioPlayers, ich hab hier willkürlich mal ein paar .wav files hinzugefügt dich ich auf die schnelle gefunden habe.

nun noch die entscheidende Methode
Code:
startSession();

Java:
public void startSession(){
		boolean running = true;
		
		while (running) {
	        String input = sc.nextLine();
	        
	        if (input.equals("stop")) {
	            running = false;
	            sc.close();
            }
	        while(running){
	        	player.play(player.getSongByName(input));
	        	break;
	        }
        }
	}

Zugegeben , sie sieht etwas kryptisch aus, aber es ist notwendig damit nicht nach jeder eingabe die Anwendung beendet wird, hier passiert folgendes, beim Ausführen der Methode wird der boolsche Wert
Code:
running
auf true gesetzt, somit startet die erste While Schleife und die lokal definierte Variable
Code:
input
wartet nun über den Scanner und dessen nextLine Methode, auf eingabe in der Konsole, solange diese nicht "stop" ist, wird die variable input mit der nächsten Zeile der Konsole belegt ,daraufhin wird die zweite while Schleife ausgeführt, die ebenfalls solange läuft wie
Code:
running = true
ist, in dieser wird nun die methode
Code:
play(Song s);
, in verbindung mit der Methode
Code:
getSongByName(String s);
des AudioPlayers aufgerufen und dieser der Inhalt der lokalen Variable input gefüllt.
Nun wird in dieser Methode nach einem Song gesucht der Namentlich Identisch mit der Eingabe ist, sollte ein Soung gefunden werden spielt die Methode play(); diesen dann ab, und das
Code:
break;
sorgt dafür das aus der zweiten while schleife wieder heraus in die erste gesprungen wird, anders würde sonst nun die Anwendung beendet werden.

Du kannst so nun beliebig oft einen Sound nach dem anderen aus der playlist abspielen, bis du stop eingibst, dann wird
Code:
running = false
gesetzt, der Scanner geschlossen und die Anwendung beendet.

hier nun noch die Main Methode welche nurnoch dazu dient um das Programm zu starten, bzw. eine Instanz der Klasse AudioTest zu Instanziieren, und die
Code:
startSession();
Methode aufzurufen.

Java:
public static void main(String[] args) {
	  
		new AudioTest().startSession();
		
    }
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Wir könnten nun noch beigehen und die Methoden in der Klasse AudioPlayer vernünftig implementieren und uns um Fehlerbehandlung Kümmern, oder evtl, eine kleine GUI schreiben welche das Ganze Visualisiert.
 

Cherryrose

Mitglied
Nein, nein noch ist garnichts geklärt. :D
Hatte die letzten Tage keine Zeit dafür, habe grade erst dass gemacht, was du geschrieben hast.
Soweit habe ich keinen fehler, doch wenn ich abspielen will, erscheint keine Fehlermeldung aber auch kein Ton.
Du hast geschrieben, man muss implementieren, wie geht das? :)
 

kaoZ

Top Contributor
Hast du den While Loop mit implementiert ?

Java:
 public void play(Sound song){
        try {
            AudioInputStream stream = AudioSystem.getAudioInputStream(song.getFile());
            AudioFormat audioFormat = stream.getFormat();
            DataLine.Info info = new DataLine.Info(Clip.class, audioFormat);
            Clip clip = (Clip) AudioSystem.getLine(info);
            clip.open(stream);
            clip.start();
            clip.start();
            

            // *********************************************
            // Das hier ist Wichtig , sonst wird das Programm beendet bevor der Sound abgespielt wurde !

            while(clip.getFramePosition() < clip.getFrameLength()) {
                
                 // Nur zum testen so implementiert
            };
 
            //*********************************************

        } catch (Exception e) {
            //Hier werden wir dann ExceptionHandling betreiben !
        }
    }


Implementieren bedeutet übrigens nichts anderes als einbinden, einfügen oder etwas einem bestehendem System hinzuzufügen ;)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Es kann sein , das das .wav file eine andere Codierung verwendet, versuch mal bitte eine andere datei abzuspielen, bei mir funktionieren auch nicht alle, ansonsten müssen wir uns noch um die Codierund kümmern.

Ansonsten musst du mal debuggen und ein Breakpoint auf das auslesen des formates setzen dann muss die Codierung
Code:
"PCM_SIGNED"
sein, sonst kann es sein das es zwar abgespielt wird du aber nix hörst.

Hier noch ein Screen vom Debugger :


Wenn du nicht weißt wie man den Debugger nutzt lass es mich wissen ^^

[EDIT]
Mach doch mal nen Screenshot von Deiner IDE und poste denn hier mal oder nen LInk dazu so das ich Quelltext und die Konsole sehen kann, vielleicht finde ich nen Fehler insofern es einen gibt ;)
[/EDIT]

[EDIT]
Poste doch auch bitte mal deine Klasse AudioTest damit ich sehen kann wie und ob du die Sounds deiner Playlist hinzugefügt hast.
[/EDIT]
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Java:
package samples;

import java.util.Scanner;

public class AudioTest {
	
	 Scanner sc;
	 AudioPlayer player;
	 String path;
	 public AudioTest() {
		 sc = new Scanner(System.in);
		 player = new AudioPlayer();
		 path = "C:/Users/Ela/Music";
	
    fillPlaylist();    
    }
	
	public void fillPlaylist(){  
		Sound C    = new Sound("one",path + "C-Dur.wav");
		Sound D    = new Sound("two",path + "D-Dur.wav");
		Sound G  = new Sound("three",path + "G-Dur.wav");
		getPlayer().addToPlayList(C, D, G);
		}        
	public void startSession(){       
		boolean running = true;
		while (running) {
			String input = sc.nextLine();
			if (input.equals("stop")) {
				running = false;
				sc.close();
				}
			while(running){
				player.play(player.getSongByName(input));
				break;
				}
			}
		}
	public AudioPlayer getPlayer()              {return this.player;}
	public static void main(String[] args) {
		new AudioTest().startSession();
		}
	}

Das ist mein AudioTest.

Wie gesagt, ich kenne mich kaum aus, deshalb weiß ich auch nicht wie man debuggt.^^
 

kaoZ

Top Contributor
Ok kleinen moment...

1. Hier fehlt ein slash "/"

Java:
path = "C:/Users/Ela/Music";

richtig wäre :

Java:
path = "C:/Users/Ela/Music/";

bitte korrigiere das mal und führe deine Anwendung aus, sonst kann er nämlich keine der sounds finden da er nicht im richtigen Verzeichniss ist :)

[EDIT]Gibt es eine Veränderung ?[/EDIT]

[TIPP]Variablen / Methoden schreibt man lowerCamelCase
Java:
Sound c = ....;
[/TIPP]
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
ok, dann weiter im Text, nun müssen wir mal debuggen :

Folgendermaßen , durch doppelklick an diese stelle , setzt du einen Breakpoint, dies ist die kleine blaue kugel



Bitte mach das mal an genau dieser Stelle in der Klasse AudioPlayer.

dann startest du deine Anwendung unter Verwendung dieses Buttons als Java Application:



und gibst dann mal zum testen "one" ein und bestätigst mit Enter.

Jetzt müsste Eclipse in die Debugg Ansicht springen und du siehts links oben solch ein Fenster :



jetzt nutzt du diesen Button solange bis du oben links wie im oberen bild audioFormat stehen hast,



klickst nun auf den pfeil davor und dann sollte es aussehen wie im Bild oben dort stehen dann informationen zu der Codierung deiner AudioDatei., mach davon bitte mal nen screenshot

[EDIT]oder bekommst du in der Console irgendwelche Exceptions oder Fehlermeldungen , falls ja bitte poste diese mal.[/EDIT]
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Ich weiß nicht so recht wo ich "one" eingeben soll. Wenn ich das als breakpoint mache und dann auf das symbol drücke dann erscheint diese Ansicht aber mit anderen Angaben und auch wenn ich alles durchgucke, das was bei dir steht entdecke ich nicht. :(
 

kaoZ

Top Contributor
Wenn du deine Application in deiner IDE startest , sollte durch die while Schleifen das untere rote Viereck aktiv sein, das bedeutet die Anwendung wartet auf eingabe , du kannst dann unten wie in dem Bilder in der Konsole text eingeben, und diese dann mit Enter bestätigen .

wenn der Text den du eingibst mit einem der Songnamen übereinstimmen sollte, wird der Sound abgespielt.

 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Ich habe mal ein paar Ausgabe hinzugefügt damit es besser zu sehen ist das die Anwendung läuft,

so sollte es dann aussehen wenn du die Anwendung startest, die eingekreiste Zeile ist meine Eingabe:



ersetze mal deine Klasse AudioTest mit diesem SourceCode hier, denke aber daran das du deine Songs wieder angeben musst! :

Java:
import java.util.Scanner;



public class AudioTest {
	
	Scanner sc;
	AudioPlayer player;
	String path;
	
	public AudioTest() {
	   sc = new Scanner(System.in);
	   player = new AudioPlayer();
	   path = "L:/OpenOffice/share/gallery/sounds/";
	   
	   fillPlaylist();
    }
	
	public void fillPlaylist(){
		
		Sound one	 = new Sound("one",path + "cow.wav");
		Sound two	 = new Sound("two",path + "curve.wav");
		Sound three	 = new Sound("three",path + "drama.wav");
		Sound four	 = new Sound("four",path + "explos.wav");
		Sound five	 = new Sound("five",path + "falling.wav");
		
		getPlayer().addToPlayList(one, two, three, four, five);
	}
	
	public void startSession(){
		boolean running = true;
		
        System.out.println("Willkommen beim AudioPlayer");
        System.out.println("***************************");
        System.out.println("- Gibt 'songlist' ein um eine Titelübersicht zu erhalten,");
        System.out.println("- gibt den Namen eines Sounds ein um ihn abzuspielen,");
        System.out.println("- oder 'stop' um den Player zu beenden.");
        System.out.println("_______________________________________");
        

		while (running) {
	        String input = sc.nextLine();
	        
	        if (input.equals("songlist")) {
	        	
	        	System.out.println("Songlist");
	        	System.out.println("********");
	        	
	            for (int i = 0; i < player.getPlayList().size(); i++) {
	                System.out.println("Sound " + i + ": " + player.getPlayList().get(i).getName());
                }
	            continue;
            }
	        
	        if(input.equals("stop")) {
	            running = false;
	            sc.close();
	            System.out.println("Player wurde beendet ! Schönen Tag noch.");
            }
	        
	        while(running){
	        	System.out.println("Spiele Sound " + input + " ab.");
	        	player.play(player.getSongByName(input));
	        	break;
	        }
        }
	}
	
	public AudioPlayer getPlayer() 				{return this.player;}

	public static void main(String[] args) {
	  
		new AudioTest().startSession();
		
    }
}
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
yh8z74sd.jpg


Zwar hab ich den Breakpoint gemacht, aber bei mir steht nicht AudioFormat da. :eek:

Ahh genau dies ist mir eben auch aufgefallen, dass du bei while mehr hast, wollte eben fragen, ist aber doch geklärt. :)
 

kaoZ

Top Contributor
Du musst noch einen Schritt weiter klicken oben mit dem Grünen Pfeil damit die Variable belegt wird, dann sollte oben rechts auch das Format erscheinen.

[EDIT]ersetze aber trotzdem mal die Klasse AudioTest, damit du anhand der Ausgaben sehen kannst ob das Programm läuft wie es soll oder nicht [/EDIT]
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Top, wie gesagt, Exception Handling wäre noch ein Punkt den man definitiv nicht außer acht lassen sollte.

ansonsten halt die Sache mit der GUI, um dem User eine Grafische Darstellung zu liefern mit der er arbeiten kann.

Aber wenn du zufrieden bist , haben wir unser Ziel ja erreicht ;)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Also

Eine Klasse stellt unsere Sounds dar, eine unseren Player , und eine Verbindet das Ganze.

Objekte der Klasse Sound repräsentieren die Sounds die wir abspielen wollen.

Objekte der Klasse AudioPlayer stellt unseren Player dar.

Objekte der Klasse AudioTest verknüpfen das ganze miteinander.

In der Klasse AudioTest erzeugen wir Sounds ( Objekte vom Typ Sound) welche wir an die Playlist unseres AudioPlayers übergeben,

die Klasse AudioTest erzeugt hier in unserem Fall die Schleifen welche die Nutzereingaben entgegen nimmt und dann entsprechend
darauf reagiert, z.B indem unser Player einen Sound abspielt.

In der OOP ist es so das Objekte bestimmter Typen wie in unserem Fall reelle Dinge darstellen, so stellt in userem Fall halt die klasse Sound einen Sound dar, hätte man die Klasse Handy wäre z.B ein Objekt der klasse eine nachahmung eines reelen Gegenstandes, dabei legt man über die Klasse fest welche Eigenschaften und attribute solch ein Objekt hat, zum Beispiel einen Typ oder einen Namen, dafür sind die sogenannten Member oder auch Instanzvariablen gedacht.

Java:
public class Handy{
  
  private String name;  // Member oder auch Instanzvariable

...
}

diese steht dann jedem Objekt welches erzeugt wird zur Verfügung. und kann für jedes Objekt unterschiedlich belegt sein.

Die Klasse ist also der Bauplan und ein erzeugtes Objekt dieser Klasse ist quasi ein einzelnes Element mit den in der Klasse festgelegten Eigenschaften und "Funktionen" ( methoden )
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Also ich hab das jetzt so ausgebaut wie ich es wollte, aber denke um noch mehr zu überzeugen könnte ich doch noch so machen, dass es in einem neuen Fenster erscheint. Ist das viel Arbeit? Ich habe noch bis nächsten Dienstag Zeit.
Würde mich sehr über weitere Hilfe freuen!
 

kaoZ

Top Contributor
Du meinst also ein Gui ?

Klar können wir machen ;)

[EDIT]Am besten du machst mal eine skizze wie du dir das vorstellst, lädst diese als bild hoch und dann schauen wir mal was wir machen können ;[/EDIT]
 
Zuletzt bearbeitet:

Cherryrose

Mitglied
Danke das du mir doch nocht weiter helfen willst. :)


Java:
package samples;

import java.util.Scanner; 
//Die Klasse Scanner ist in dem Paket java.util definiert.

public class AudioTest {
	
	 Scanner sc; 
	 AudioPlayer player;
	 String path;
	 
//sc repräsentiert den Scanner, der Scanner definiert Methoden zum Einlesen von Dateien	
	
	 public AudioTest() {
		 sc = new Scanner(System.in);  //Der Scanner liest normalerweise eine Datenquelle, hier die Konsolenangabe.
		 player = new AudioPlayer();
		 path = "C:/Users/Ela/Music/"; //Der Pfad zu der .wav Datei, welcher abgespiel werden soll.

		 fillPlaylist();               //Diese Methode initialisiert die Playlist
    }
	
	public void fillPlaylist(){  
		
		Sound b = new Sound("Bandoneon",path + "Bandoneon.wav"); 
		Sound f = new Sound("Blockflöte",path + "Blockflöte.wav");
		Sound g = new Sound("Glockenspiel",path + "Glockenspiel.wav"); 
		Sound h = new Sound("Harfe",path + "Harfe.wav"); 
		Sound k = new Sound("Klavier",path + "Klavier.wav"); 
		Sound o = new Sound("Orgel",path + "Orgel.wav"); 
		
		getPlayer().addToPlayList(b, f, g, h, k, o);
//Die Sounddateien werden in der Playlist angegeben, um sie dann als Nutzer auszuwählen.
	}        
	
	public void startSession(){       
		boolean running = true;
		
		 System.out.println("Hier können Sie sich für ein Instrument entscheiden, in der das Lied 'Suit' von R.Ch.Martin gespielt werden soll!");
		 System.out.println("");
		 System.out.println("1. Geben Sie als erstes 'Instrument' ein, um eine Übersicht zu erhalten.");
		 System.out.println("2. Als nächstes geben Sie den Namen eines Instrumentes ein, um sie abzuspielen. Dies können Sie beliebig oft wiederholen.");
		 System.out.println("3. Wenn Sie den Player beenden wollen, geben Sie 'stop' ein.");
		 System.out.println("");
		 System.out.println("***********************************************************************************************");
		 
		 while (running) {            
			 String input = sc.nextLine();
		 
			 if (input.equals("Instrument")) {
			 
				 System.out.println("");
				
			 
				 for (int i = 0; i < player.getPlayList().size(); i++) {
					 System.out.println(player.getPlayList().get(i).getName()); 
					 
				 } 
			 	 continue;
		}                       
		if(input.equals("stop")) {
			 running = false;
			 sc.close();
			 System.out.println("Der Player wurde beendet. Hoffentlich haben Sie die Musik genossen!");
			 System.out.println("Ich wünsche Ihnen noch einen schönen Tag!");
		}    
		 
		while(running){
			System.out.println("Das Lied wird mit " + input + " gespielt. Viel Vergnügen!");
			player.play(player.getSongByName(input));
			break; 
			
			}
		 }
	}
	public AudioPlayer getPlayer()              {return this.player;}
	
	public static void main(String[] args) { 
		new AudioTest().startSession();
//Die Main Methode dient dazu um das Programm zu starten und die startSession(); Methode aufzurufen.
		}
}

So sieht mein Code jetzt aus, ich habe Tonart durch Instrument ersetzt und würde es schön finden wenn ein Fenster erscheint wo man sich für ein Instrument entscheidet. Wenn man auf eins drückt kommt gleich die Musik, oder es erscheint ein neues Fenster wo steht welches Instrument jetzt spielt, muss aber nicht umbedingt sein. Wenn eins zuende gespielt hat kann man sich dann gleich ohne erneutes öffnen ein neues aussuchen. Also ich hoffe es ist nicht zu schwer, wäre schön wenn es klappt, dann hätte ich 2 Versionen die ich präsentieren kann!
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
So dann wollen wir mal fix was zusammenbauen :)

Zuerst müssen wir uns gedanken darüber machen wie wir das was du dort skizziert hast optisch umsetzen, wenn ich darauf schaue sehe ich z.B :

- 1 JFrame mit BorderLayout
- 1 JLabel im Head Bereich des JFrames
- 1 JPanel welches unseren Content beinhaltet ( hier mit GridLayout)
- 6 JButtons welche uns nachher die möglichkeit geben die Sounds abzuspielen

Hier der Code dazu , hier ist allerdings noch keine Funktionalität vorhanden, dazu kommen wir jetzt gleich:

Java:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Gui extends JFrame {
    private static final long serialVersionUID = 1L;

    public final static Dimension GUI_SIZE = new Dimension(400,300);
    public final static String GUI_TITLE = "Audio Player v1.0";

    
    private JPanel contentPane;
    private JPanel headerPane;
    
    private JButton[] btns;
    
	public Gui() {
	   
		setSize(GUI_SIZE);
		setTitle(GUI_TITLE);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setLocationRelativeTo(null);
		
		this.contentPane = new JPanel(new GridLayout(3,2,20,20));
		this.contentPane.setBorder(BorderFactory.createEmptyBorder(30, 30, 30, 30));
		
		this.headerPane = new JPanel();
		
		this.btns = new JButton[6];
		
		createComponents();
    }
	
	private void createComponents(){
		
		JLabel header = new JLabel("<Html>Mit welchem Instrument soll 'Suit'<br>"
				+ "von R.CH.Martin gespielt werden ?</Html>", JLabel.CENTER);
		
		Font newFont = header.getFont().deriveFont(14f);
		
		header.setFont(newFont);
	
		String[] label = {"Bandoneon","Harfe","Blockflöte","Klavier","Glockenspiel","Orgel"};
		
		for (int i = 0; i < btns.length; i++) {
	        btns[i] = new JButton(label[i]);
        }
		
		for (int i = 0; i < btns.length; i++) {
	        contentPane.add(btns[i]);
        }
		
		
		this.headerPane.add(header);
		
		this.add(BorderLayout.PAGE_START, headerPane);
		this.add(BorderLayout.CENTER, contentPane);	
	}
}

Das ganze schaut dann so aus :



Ich habe hier erst einmal versucht es so einfach wie möglich für dich zu gestalten , und erzeuge hier über Schleifen die nötigen Elemente, und fülle diese dann über eine weitere Schleife mit Text, welchem ich zuvor initialisiert habe, wenn du Fragen dazu haben solltest immer raus damit , schließlich sollst du es ja nachvollziehen können :)

als nächstes werden wir einen Listener einbinden , und zwar in einfachster Form, welcher auf die Buttonsklicks lauscht und dann über sogenannte Events die nötigen Aktionen ausführt/aufruft.

[EDIT]Das verwenden von HTML Tags im JLabel ist notwendig da sonst keine Zeilenumbruch stattfindet, ansonsten hätten wir eine eigenständige klasse von JLabel ableiten müssen um dieses feature selbst zu implementieren, was hier eindeutig zu aufwendig wäre.[/EDIT]

Da ich nicht weiß ob nur ein Interpret mit verschiedenen Instrumenten Voraussetzung bei dir ist ,
habe ich auch nur das von dir skizzierte nachgestellt, wenn du mehrere Künstler anbieten sollst, müsste man sonst das gleiche nochmal für Künstler machen , und dann beim auswählen dieser dann dieses Fenster öffnen welches die verschiedenen Instrumente anbietet, ansonsten könnte man es so lassen.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Als nächstes werden wir über folgenden Code , einen Listener implementieren, hier handelt es sich um ein Interface, da ein Interface Abstrakt ist, muss die Methode ( hier nur eine , seit Java 8 ist dies ein funktionales Interface ) überschrieben werden.

Hier der Code

Java:
public class Gui extends JFrame implements ActionListener{..}

nachdem du über Strg + Shift + O das package des ActionListener importiert hast fordert dich Eclipse nun durch unterstreichen der Klasse Gui auf , die Methoden des Interfaces zu implementieren in unserem Fall

Java:
public void actionPerformed(ActionEvent e){...}

Zudem müssen wir oben in der Schleife in welcher wird die Buttons erzeugen auch gleich die Buttons beim Listener anmelden, dies machen wir indem wir diesen Code hinzufügen :

Java:
for (int i = 0; i < btns.length; i++) {
	 btns[i] = new JButton(label[i]);
	 btns[i].addActionListener(this);  // <----
}

wenn du dies hast sollte es nun ( ohne die hier bereits gemachten implementierungen ) so aussehen:

Java:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Gui extends JFrame implements ActionListener{
    private static final long serialVersionUID = 1L;

    public final static Dimension GUI_SIZE = new Dimension(400,300);
    public final static String GUI_TITLE = "Audio Player v1.0";

    
    private JPanel contentPane;
    private JPanel headerPane;
    
    private JButton[] btns;
    
	public Gui() {
	   
		setSize(GUI_SIZE);
		setTitle(GUI_TITLE);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setLocationRelativeTo(null);
		
		this.contentPane = new JPanel(new GridLayout(3,2,20,20));
		this.contentPane.setBorder(BorderFactory.createEmptyBorder(30, 30, 30, 30));
		
		this.headerPane = new JPanel();
		
		this.btns = new JButton[6];
		
		createComponents();
    }
	
	private void createComponents(){
		
		JLabel header = new JLabel("<Html>Mit welchem Instrument soll 'Suit'<br>"
				+ "von R.CH.Martin gespielt werden ?</Html>", JLabel.CENTER);
		
		Font newFont = header.getFont().deriveFont(14f);
		
		header.setFont(newFont);
	
		String[] label = {"Bandoneon","Harfe","Blockflöte","Klavier","Glockenspiel","Orgel"};
		
		for (int i = 0; i < btns.length; i++) {
	        btns[i] = new JButton(label[i]);
	        btns[i].addActionListener(this);
        }
		
		for (int i = 0; i < btns.length; i++) {
	        contentPane.add(btns[i]);
        }
		
		
		this.headerPane.add(header);
		
		this.add(BorderLayout.PAGE_START, headerPane);
		this.add(BorderLayout.CENTER, contentPane);	
	}

	@Override
    public void actionPerformed(ActionEvent e) {
		
	  switch(e.getActionCommand()){
	  case "Bandoneon":
		  System.out.println("Test : " + e.getActionCommand());
		  break;
	  case "Harfe":
		  System.out.println("Test : " + e.getActionCommand());
		  break;
	  case "Blockflöte":
		  System.out.println("Test : " + e.getActionCommand());
		  break;
	  case "Klavier":
		  System.out.println("Test : " + e.getActionCommand());
		  break;
	  case "Glockenspiel":
		  System.out.println("Test : " + e.getActionCommand());
		  break;
	  case "Orgel":
		  System.out.println("Test : " + e.getActionCommand());
		  break;
	  }
    }
}

über die hier schon implementierten "prints", kannst du wenn du die Applikation ausführst und die Buttons betätigst schon sehen das in der Console von Eclipse ausgegeben wird von welchem Button bzw. welcher ActionCommand das Event ausgelöst wird.

So sollte es nun aussehen wenn du die Buttons drückst :

 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3
Z Operatoren Java Applikation Java Basics - Anfänger-Themen 8
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2
sasnitzer java augensumme von zwei würfeln ist 1 Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben