Donnerstag, 26. Juni 2014

Bilder mit getResource() in Java laden für .jar s

Erst neulich stand ich wieder vor einem nervigem Problem. Ich wollte mit Eclipse eine .jar erstellen für einen kleines Spiel, das ich geschrieben hatte. Das Problem: Ich habe es einfach nicht hinbekommen mittels getRessources() den richtigen Pfad oder überhaupt den richtigen Aufruf anzugeben und die Bilder richtig zu laden. Im Internet gibt es zu diesem Thema bereits einige Informationen, auch auf StackOverflow, aber keine hatte bei mir irgendwie geholfen und dann half ich mir einfach selbst. 

Mein Problem: Ich hatte ein main-Package das einen resources-Ordner samt Bilder, sowie ein java-package mit dem Code und vielen weiteren unter Packages beinhaltete. In einem dieser unter Packages hatte ich nun eine Klasse ImageLoader, die für mich die Bilder laden sollte. Das funktionierte im Debugging soweit so gut. Also ich nun aber auf getResources() umstellen wollte, kam das Problem mit den Pfaden, den die alten Pfade, die mit mit new File("pfad") angegeben hatte gingen nicht mehr. Ich probierte unendlich viele Varianten, kam aber nicht drauf. Letztendlich war die Lösung folgende:

ImageLoader.class.getClassLoader().getResource("main/resources/" + imageName + ".png")

 Per ausprobieren fand ich heraus, dass der Befehl generell erstmal 

X.class.getClassLoader().getResource()

lautet wobei X = der Klassenname ist, in der das Bild geladen wird, in meinem Fall der ImageLoader. Das Problem war nun immer der Pfad, doch den kann man ganz einfach herausfinden. Man platziert einfach folgendes

System.out.println(ImageLoader.class.getClassLoader().getResource(""));

an der Stelle bevor man das Bild lädt. Debuggt man nun das Ganze, so erscheint auf der Konsole der entsprechende Klassen Pfad, was in meinem Fall einfach der bin-Ordner im Projekt-Ordner war. Mit diesem Wissen kann man nun einfach den Pfad ab den bin-Ordner fortsetzen. In meinem Fall war das der Packagename + der Ordnername: also "main/resources/" hängt man jetzt noch den Bildnamen an, wie bereits oben geschehen, so sollte es keine Probleme geben.

Sonntag, 22. Juni 2014

Visual Studio 2013 Projekt in Visual Studio 2012 öffnen

Erst neulich stand ich vor dem Problem, dass ich in Visual Studio 2012 ein Visual C++ Projekt mit Windows Forms öffnen wollte, dass ich zuvor auf einem anderem Rechner mit Visual Studio 13 erstellt hatte. Das Öffnen funktionierte soweit auch problemlos. Als ich es jedoch kompilieren wollte, kam es zu einigen Kompilierfehlern. Die Lösung für dieses Problem ist eigentlich recht simpel:

1. Öffne deine Visual Studio 13 Projektmappe mit Visual Studio 12.
2. Gehe oben in der Menüleiste auf "Projekt->Vorlage-Eigenschaften..."

3. Im sich öffnenden Fenster wähle Links "Allgemein"
4. Setze dann rechts das Plattformtoolset vom unbekannten "v112 Comiler" auf den "v110-Compiler" von Visual Studio 2012. 

5. Nun sollte das Programm wieder fehlerfrei debuggen.

Das ganze funktioniert eventuell auch für andere Projekte. Weitere Infos bzgl. der Kompatibilität gibt es bei Mircosoft: Link

Samstag, 8. Februar 2014

Audio-CD mit CD-Text brennen

Das Problem:

Wer kennt das nicht. Da kauft man sich online ein Album und brennt eine Audio-CD, schiebt es dann in einem beliebigen CD-Spieler und statt nun die Namen der einzelnen Songs präsentiert zu bekommen, steht bei jedem Lied etwas wie "Unbekannter Titel" oder "Titel 1" und das obwohl die .mp3's doch alle richtig getagt waren, also in den Eigenschaften der Songdateien alles richtig stand. Lustigerweise tritt dieses Problem auch bei fast allen gekauften Audio-CDs auf.

Der Grund:

Natürlich kann das Problem auf mehreren Ursachen basieren, aber meistens liegt der Fehler bereits beim Brennvorgang. Das Stichwort heißt "CD-Text". Denn die meisten Freeware-CD/DVD-Brenner wie CD-Burner-XP, Windows Media Player aber auch Shareware-CD/DVD-Brenner besitzten dieses Feature nicht, setzen es nur in manchen Fällen richtig um oder haben es so versteckt, dass man es kaum findet. Standardmäßig ist es normalerweise nämlich nicht aktiv. Ebenso findet man eben auch kaum gekaufte Audio-CDs mit diesem Feature, was meiner Meinung nach sehr schade ist. Denn so kann man bspw. gemütlich zum seinem gewünschten Titel schalten, ohne die Tracklist auswendig zu können oder sich jeweils in die ersten Sekunden reinzuhören. Aber anscheinend ist man der Ansicht, dass in unseren heutigen Welt, sowieso alles mit allem vernetzt ist und somit die entsprechenden Daten kurzerhand aus dem Internet geladen werden können. Im Folgenden werde ich daher anhand eines Freeware-Brenners kurz erklären, wie man Audio-CDs brennt, bei denen letztendlich auch die Titel beim Namen angezeigt werden.

Vorraussetzung: 

Damit das gewünschte Abspielgerät die Titel auch anzeigt, muss es natürlich auch CD-Text unterstützen, was meiner Erfahrung nach die meisten Geräte können, aber eben nicht alle. Das gleiche gilt übriens auch für Musikplayer am PC. Windows Media Player oder PowerDVD können dies bspw. nicht, wohingegen der VLC-Player die Daten auslesen kann.

 Anleitung:

  1. Wir laden uns das kostenlose Brennprogram ImgBurn herunter und installieren es normal.
  2. Nun starten wir das Programm. Es öffnet sich ein Hauptfenster und ein Logfenster. Wir widmen uns dem Hauptfenster und wählen unter dem Menüpunkt "Tools"->"Create CUE File".

  3. Im sich nun öffnendem Fenster fügen wir unsere gewünschten Liedtitel hinzu indem wir sich einfach per Drag'n'Drop in das Fenster fallen lassen oder rechts oben das Symbol anklicken und entsprechende Dateien auswählen. Hat man dies gemacht, so analysiert das Programm die Dateien, was ein paar Sekunden Zeit in Anspruch nehmen kann. Danach erhalten wir unsere Songliste. 
  4. Setzen des CD-Text: Zuerst klicken wir oben auf "Disc" und stellen nun weiter unten die CD-Text-Option nach unserem Wunsch ein. Im Falle von "Disc" stellen wir nun den Interpreten und den Name des Albums ein. Die Optionen sind eigentlich selbsterklärend. Bei "File-Name" wird der Dateiname als CD-Text genommen, bei "Tag" werden die Daten aus den Metadaten der Datei geladen und bei "Custom" können wir den CD-Text beliebig setzen. Bei "Disc" empfiehlt sich daher "Custom", es sei denn, man hat ein komplettes digitales Album, dass man brennen möchte, dann sollte auch bei "Tag" der Albumname geladen werden. So verfährt nun auch mit den übrigen Einträgen, wobei man bei den einzelnen Songs eben Titel und Interpret festlegt. Das "Session" steht hierbei für alle Lieder auf der Disk, das heißt setzt man bei Session den CD-Text auf "Tag", so wird automatisch bei allen Songs die Option auf "Tag" gesetzt, so lässt sich eine Menge Arbeit sparen. Was beim Tag ausgelesen wird, sieht man immer in der ausgegrauten Vorschau. Sollte man mal nicht zufrieden sein oder das Feld leer bleiben, da keine Metadaten vorhanden sind , kann man mit "Custom" die Songdaten entsprechend anpassen bzw. selber eintragen.
  5. Weitere Optionen: Zusätzlich stellen wir unten rechts die Dropdownmenüs  noch auf unsere gewünschte Option. Ebenfalls interessant ist die "PreGap"-Option über dem CD-Text, mit der man die Pause zwischen den einzelnen Songs einstellen kann.
  6. Ist alles wie gewünscht eingestellt, klicken wir auf OK und speichern unsere CUE-Datei an einen beliebigen Ort und das Fenster schließt sich.
  7. Im noch offenen Hauptfenster wählen wir nun "Write image file to disc"
  8. Unter "Source" öffnen wir nun unsere soeben gespeicherte CUE-Datei. Die Songs werden so automatisch geladen.
  9. Nun nur noch brennen und fertig ist die Audio-CD mit CD-Text.

Donnerstag, 13. Dezember 2012

Windows 8 Start Menü und Button Skin

Windows 8 gibt es ja nun schon seit einer Weile und viele Leute vermissen bei dem neuen Betriebsystem ihr alt bekanntes Startmenü. Da es bereits sehr viele Seiten gibt, die genauer darauf eingehen, wie man den dieses Menü zurück bekommt, möchte ich mich hier einfach nur kurzfassen. Mein persönlicher Favorit ist Classic Shell. Das Programm bringt unter anderem folgende Funktionen:
  • das altbekannte Startmenü
  • welches sich jedoch nach belieben anpassen lässt (Aussehen, Funktionen im Menü selbst, was soll rein und was nicht etc. , man sich praktisch selbst eins zusammen basteln
  • viele Skins von Classic über Windows 7 bis ganz neue
  • verschiedene Startbutton
  • weitere nette Optionen wie Windowsstart auf den Desktop, Deaktivierung der Charmbar etc.
Bei der Installtion solltet ihr jedoch darauf achten, dass ihr nicht das gesamte Pakt installiert sondern nur das Startmenü, sofern ihr die anderen Dinge nicht wollt.
 
Ein Startmenü unter Windows 8 - Classic Shell macht es möglich!
 
So, aber wieso schreibe ich dann diesen Post überhaupt, wenn er bereits so oft existiert? Weil ich euch gerne meinen selbst erstellten Windows 8 Button für Classic Shell vorstellen will, der meiner Meinung nach einfach schick ist und perfekt zum Windows 8 Design passt. Denn die im Programm mitgelieferten Buttons sind meiner Meinung nach mehr schlecht als recht.
Lieb gemeint: Die mitgelieferten Classic Shell Startbuttons sind zwar nett, auf Dauer aber kaum anschaubar.



Als Grundlage habe ich das neue Microsoftlogo genommen, welches ironischerweise den bisherigen Windows Logo deutlich ähnlicher ist als das neue Windows Logo. Aufgrund dessen, dass es quadartisch ist und einfach simpel, passt es perfekt zur Metrooberfläche bzw. verzeiht Windows 8 Modern GUI. Hier ein Vorschau:

 
Den Download gibt es hier. Zum installieren muss natürlich Classic Shell installiert sein. Dann einfach in den Einstellungen unter Start-Schaltfläche -> Benutzerdefnierte Startfläche die entsprechende .bmp wählen. Für die dicke Taskleiste empfehle ich big oder small, für diejenigen mit kleinen Symbolen, empfehle ich small.

Wer lieber das komplette Windows 7 Desgin zurück haben möchte(bezüglich des Startmenüs), der kann sich das anschauen.

Greets Moorhuhnfreak