Archive for the ‘Specials’ Category

Kommentare deaktiviert

Java: GUI


2010
07.14

Ich verwende ja gern Funktionen um Objekte fertig initialisiert zu erstellen.
Daher hab ich als ich mich an GUIs gemacht hab als Erstes dafür eine Funktion geschrieben.

Der folgende Code erstellt ein Fenster mit angegebenem Titel und Ausmaßen.

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

public static JFrame createFrame(String title, int width, int height){
  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  if (d.height < height || d.width < width)
    System.err.println("Window creation: Frame bigger than screen.");

  JFrame win = new JFrame(title);
  win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  win.setSize(width, height);
  win.setResizable(false);
  win.setLocationRelativeTo(null); // Show window centered

//  No title bar etc.
//  win.dispose();
//  win.setUndecorated(true);
//  win.setVisible(true);

//  Full Screen
//  win.setLocation( 0, 0 );
//  win.setSize( Toolkit.getDefaultToolkit().getScreenSize() );

  win.setVisible(true);
  return win;
}

Jetzt muss das Ganze natürlich noch aufgerufen werden:

// Window Size: x, y
int[] winSize = new int[]{830, 800};
JFrame mainwin = createFrame("Titel",winSize[0],winSize[1]);

// Set LookAndFeel to Nimbus (Looks better)
try {
  UIManager.setLookAndFeel(
    "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception e) {
  System.out.println("Error setting Nimbus LAF: " + e);
}

mainwin.setLayout(new FlowLayout());
JTabbedPane tabs = new JTabbedPane();
tabs.setPreferredSize(new Dimension(winSize[0],winSize[1]));
mainwin.add(tabs);
JPanel pHome = new JPanel();
tabs.addTab("Home", pHome);
JPanel pPlayer = new JPanel();
tabs.addTab("Player", pPlayer);
...

Wir haben nun ein schönes Tablayout mit dem wir arbeiten können.
Natürlich lässt es sich um beliebig viele Tabs erweitern.

Nützlich: Mit .setPreferredSize(Dimension d) lässt sich die Größe von einzelnen Elementen einstellen.

Nun macht es Sinn, die GUI als eigenen Thread laufen zu lassen.
Man kann so Aktualisierungen im Hintergrund laufen lassen.
Daher deklarieren wir die Klasse folgendermaßen:

public class Gui extends Thread{
//  Vars

  public Gui() {
  JFrame mainwin = createFrame("Title", 800, 600);
//  ... see above
  }

  @Override
  public void run() {
//  Do some refreshs ...
  sleepG(1000);
  }
}

Mit

public static void sleepG(int msec){
  try {
    Thread.sleep(msec);
  } catch (InterruptedException e) {
    System.err.println("Da hats doch grad nen sleep gekillt...");
    e.printStackTrace();
  }
}

Die InterruptedException muss schließlich aufgefangen werden.

Der Aufruf ist wie folgt:

Gui g = new Gui();
g.start();

Merke: Die Threadfunktion wird zwar als “run” deklariert, wird aber als “start” aufgerufen.
Mit g.run(); würden wir den Inhalt der Funktion sequentiell anstarten und nicht parallel in einem eigenen Thread.

Da wir in der GUI-Erstellung
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gesetzt haben, wird das gesamte Programm beim Schließen der GUI beendet.
Alternativ: .DO_NOTHING_ON_CLOSE

Kommentare deaktiviert

Java: InputBox


2010
07.14

Wie einige ja wissen, lerne ich gerade Java.
Andere wissen auch: Java ist auch eine Insel! (Das Buch ist toll für den Einstieg)

Da man in Java ja gerne Code recycelt, hab ich mir gedacht, ich schreib hier einfach mal n paar nützliche Schnipsel auf.
Vielleicht findet sie ja jemand und muss sich nicht danach kaputtsuchen wie ich :)

Inputboxen erstellt man einfach mit JOptionPane aus dem Swing Set.

String var = "";
var = javax.swing.JOptionPane.showInputDialog(null, "Text", "Titel", JOptionPane.QUESTION_MESSAGE, null, null, "DEFAULT");
// var = javax.swing.JOptionPane.showInputDialog(PARENT, TEXT, TITLE, MESSAGE_TYPE, null, null, "DEFAULT");

Wenn das ganze nun einen Integerwert abfragen soll sieht die Geschichte schon anders aus.
Die Eingabe muss nun in eine Ganzzahl umgewandelt werden.

int spd = 0;
try {
  spd = Integer.valueOf((String) javax.swing.JOptionPane.showInputDialog(null, "X Minuten pro Sekunde", "Geschwindigkeitsmultiplikator", JOptionPane.QUESTION_MESSAGE, null, null, "5"));
  if (spd < 1)
    spd = 1;
  else if (spd > 250)
    spd = 250;
} catch (NumberFormatException e) {
  spd = 10;
}

Möglicherweise funktioniert das auch ohne valueOf und (String). So funktioniert es aber sicher und wirft die genannte NumberFormatException wenn keine Zahl eingegeben wird.

Um das ganze noch zu vervollständigen. So geht eine einfache Messagebox:

JOptionPane.showMessageDialog(null, "Text", "Titel", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, "Text");
Kommentare deaktiviert

Greys Super Sommer Sonne Mix ~ Gute Laune Edition


2010
05.11

Einige erinnern sich bestimmt noch an die letzten Jahre. Wenn ich zurücksehe, erinnere ich mich zum Beispiel an einen dreisitzer Ford Puma (ja, das könnte man als Insiderjoke bezeichnen), Touren duch die Fränkische unter Sternenhimmel und ne ganzen Menge gutelaune Musik.

Das gehört einfach zum Sommer dazu. Also hab ich mich mal wieder auf die Suche nach ein paar echten Krachern gemacht.

Und eins hab ich festgestellt: Der Soundtrack zu meinem Sommer wird verdammt vielseitig. Bis jetzt hab ich schon von Deutschpunk bis Drum and Bass die ganze Palette.

Ich fang dann mal mit dem ersten Teil an, vielleicht gefällts euch ja auch.

The Temper Trap – Fader
(Das erste Lied, von dem ich den Bass komplett auf meinem E-Bass spielen kann :) )

The Verve – Love Is Noise

[Republica - Ready To Go]
(Kein Musikvideo auf YT dank Sony.)

Massendefekt feat. Micki Krause – Nur ein Sommerlied
(Das kennen bestimmt noch einige :) )

Massendefekt – Wellenreiter

Funkagenda & Mark Knight – Man With The Red Face
(Mit dem sexy Sax ^^ )

Enter Shikari – Juggernauts (Nero Remix)
[Drum and Bass]

Danny Byrd vs. Liquid – Sweet Harmony
[Drum and Bass]

Matrix & FutureBound – American Beauty VIP
[Drum and Bass]

More to follow :)

Wenn sonst ein Video nicht geht liegts entweder an den Rechteinhabern (wofür ich noch verständnis hab) oder an der GEMA, die grad mal wieder ne schöne Löschwelle bei Youtube anstoßen.
Ja, ich empfehle die Musik die ich kaufe auch gerne weiter. Wenn ihr die Hörproben löscht, schneidet ihr euch ins eigene Fleisch, aber bitte…
Kommentare deaktiviert

Tolle Tools – DisplayFusion


2010
05.10

Es soll ja ausser mir noch so ein paar Verrückte geben, die auf mehr als einem Monitor gleichzeitig arbeiten.

Die, die es tun kennen alle das Problem. Man kann in Windows nur ein Wallpaper einstellen. Für beide Monitore.

Das ist jetzt in genau einer Situation besonders schlecht: Wenn die Bildschirme unterschiedlich groß sind.

Hier bietet DisplayFusion eine wirklich gute Abhilfe. Man kann für beide Bildschirme unterschiedliche Hintergründe einstellen. Diese dann getrennt voneinander gestreckt, zentriert, etc…

Die Basic Version (kostenlos) bietet schon alles was man braucht. In der Pro Version finden sich noch einige schöne Features, die man zwar nicht unbedingt braucht, die aber durchaus hilfreich sein können. Dazu gehören Feineinstellung der Bilder, eine Taskbar für den Zusatzmonitor und Funktionen für Internetdienste wie Flickr.

Für Leute, die den Win7 Wallpaperchanger mögen habe ich ein Script geschrieben, das die generierten Wallpapers in einen Ordner speichert. Bei Interesse einfach anfragen ;)

Kommentare deaktiviert

Tool des Monats – Juni – oder: eine kurze Randinfo


2009
06.30

Ich wollt eigendlich scho Mitte des Monats eine Toolsammlung für USB-Sticks vorstellen.

Leider kam mir dann so ein blöder Autounfall dazwischen und seitdem geht meine Freizeit für anderes Zeug drauf.

Daher verweise ich hier mal wieder auf Lifehacker, die einen tollen Artikel über die Sammlung haben.

Wer noch andere Tools für den USB-Stick braucht kann sich auch hilfesuchend an folgende Seiten wenden:
PortableApps.com
PortableApps.de.ms

Hoffe damit ist einigen erstmal etwas geholfen.

Kommentare deaktiviert

Tools des Monats – Mai


2009
05.14

Dieses Monat wieder erwarten kein einzelnes Tool des Monats sondern gleich eine ganze Menge.

Bei mir dümpeln diese Seiten offen im Firefox rum.. bevor das weiter so bleibt schreib ich sie hier mal auf.
Vielleicht könnt ihr ja das ein oder andere Tool brauchen :)

Allzwecktimer
Ob nun der PC zu einer bestimmten Zeit heruntergefahren werden soll oder einfach ein Programm gestartet werden soll, das ist das richtige Tool dafür
Marxio Timer

Verschiedene Tools zur Datenrettung
hier der Lifehacker eintrag dazu

Motion detection
Bewegungsgesteuerte Aufnahme von der Webcam.
Motion Detection
Yawcam

Schriftartenverwaltung
Windows Fonts Explorer

Wie man vielleicht merkt surfe ich recht viel auf lifehacker.com rum. Vielen Dank an der Stelle für die genialen Tools !

Kommentare deaktiviert

Tool des Monats – März ‘09 – Picard


2009
03.31

Tool des Monats, jetzt aber schnell. Wollts ja eigendlich scho Anfang des Monats online stellen… Zeit is aber knapp…

Das Tool, dass ich euch vorstellen will nennt sich Musicbrainz Picard und ist ein Musiktagger.
Soll heißen: Es prüft, um welches Leid es sich handelt und ergänzt Titelinformation, Interpret, Album.. und so weiter.

Musicbrainz Picard

Musicbrainz Picard

(weiterlesen…)

Kommentare deaktiviert

Tool des Monats – Februar ’09 – WinDirStat


2009
02.09

Hm… ich erinnere mich wage daran, versprochen zu haben, dass dieses mal jeder das Tool des Monats brauchen kann.
Deswegen hab ich mir etwas den Kopf zerbrochen und bin auf was ganz banales gekommen.

Die Datenflut auf dem eigenen Rechner wird dank des Internets ja immer größer. Egal ob interne Festplatte oder USB-Stick. Wenn ein Laufwerk voll läuft, dann muss wieder Platz geschaffen werden. Aber wo ist der ganze freie Speicher denn geblieben?

Genau hier hilft WinDirStat!

(weiterlesen…)

Kommentare deaktiviert

Tool des Monats – Januar ’09 – AutoIt3


2009
01.31

Jaja… diese Kategorie hat hier schon viel zu lange gefehlt.
Es gibt so viele Tools, die zu wenige Leute kennen. Desshalb müssen sie einfach mal genannt werden!

Ein Paradebeispiel dafür ist AutoIT 3.

AutoIT

AutoIT

(weiterlesen…)

Kommentare deaktiviert

Appendix Logo reloaded


2009
01.18

Ich habe in den letzten Tagen das alte Logo des offenen Jugendclub Appendix in Neunkirchen (in dem ich Mitarbeiter bin) etwas überarbeitet.

Hauptursache dafür war, dass uns das Logo nur in mickriger Auflösung vorlag. Man konnte wirklich die Pixel auf Ausdrucken zählen.
Grundsätzlich hab ichs, wie für mich üblich, in einer Killerauflösung mit Blender gerendert. Zurechtgeschnitten hab ichs danach mit Gimp. Daher sieht man mal wieder: geht auch alles mit Open Source Programmen :)

(weiterlesen…)