Java Spieleentwicklung: Einstieg in Slick – Tutorial

Posted: April 2nd, 2011 | Filed under: Programmieren, Tutorials | Tags: , , , , , , | 5 Comments »

Seit einiger Zeit befasse ich mich mit der Java 2D Spiele-Engine Slick (Danke an Tobse). Deswegen habe ich mir gedacht wieso nicht ein Tutorial schreiben. Heraus gekommen ist ein Dokument welches beschreibt wie man Slick einrichtet, wie mein sein erstes Projekt erstellt und wie man ein erstes Spiel entwickelt. Als Beispiel-Spiel habe ich mich für einen Pong-Klon entschieden.

Hier geht’s zum Slick Tutorial:

image


Java aus Liste während der Iteration Listenelemente löschen

Posted: Januar 21st, 2011 | Filed under: Programmieren | Tags: , , , , , , , , | 7 Comments »

Oft kommt es vor dass man in Java während der Iteration über eine ArrayList oder eine LinkedList ein Element nach einem gewissen Kriterium heraus löschen will. Über die gewöhnliche Schleife for(String name : namen) geht dies jedoch nur über Umwege mit einer zweiten Hilfsliste. Löscht man Elemente während der Iteration mit obiger Schleife erhält man eine java.util.ConcurrentModificationException.

Folgende Lösung ist weitaus einfacher und effizienter. Hier wird nämlich ein Iterator verwendet und es ist möglich während der Iteration zu löschen:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListRemoveDuringIteration {

  public static void main(String[] args) {
    List<String> namen = new ArrayList<String>();
   
    namen.add("Peter");
    namen.add("Paul");
    namen.add("Maria");
    namen.add("Frank");
   
    for (Iterator<String> nameIter = namen.iterator(); nameIter.hasNext();){
      String name = nameIter.next();
      if(name.equals("Paul")){
        nameIter.remove();
        System.out.println("Paul wurde während der Iteration aus der Liste gelöscht!");
      }
    }
  }
}

 

Quelltextdatei herunterladen: ListRemoveDuringITeration.java


Java ausführbare JAR-Datei in EXE umwandeln

Posted: November 24th, 2010 | Filed under: Programmieren, Software | Tags: , , , , , , | 2 Comments »

Java Entwickler kennen das Problem. Man hat ein Programm geschrieben und möchte natürlich, dass jeder Benutzer das Programm ohne Probleme zum laufen bekommt. Allerdings stößt der Benutzer schon beim starten der Software Lösung an seine Grenze. Er muss nämlich in die Eingabeaufforderung oder in die Konsole und einen kryptischen Befehl eingeben.

Das geht auch wesentlich einfacher. Mit dem Tool JMadex könnt ihr ausführbare JAR-Dateien in eine EXE packen. Zusätzlich bietet euch das Programm noch an ein Icon für eure Anwendung zu definieren.

image

Nachdem ihr mit dem Button “Create Executable” eine *.exe Datei erstellt habt könnt ihr euer Java Programm nun mittels Doppelklick öffnen.

image

Beim starten der EXE wird die JAR-Datei in der EXE temporär entpackt. Anschließend wird nach der Java VM gesucht und mittels dieser die JAR Datei dann ausgeführt.

Download

http://www.olison.com/sites/jmadex.php


jHardDiscSpy Festplatten-Monitor

Posted: Oktober 5th, 2010 | Filed under: Software | Tags: , , , , , , | No Comments »

Habe mal wieder Lust gehabt etwas zu erschaffen. Dabei herausgekommen ist der JNotify basierende Festplatten-Monitor. JNotify und jHardDiscSpy unterstützen folgende Plattformen:

  • Windows (2000 oder höher)
  • Linux (2.6.14 oder höher)
  • Mac OS X (10.5 oder höher)

Funktionen

  • Loggt alle Festplatten und Wechseldatenträger – Aktionen mit (Voraussetzung Lese & Schreiberechte)
  • Filtermöglichkeit der Log Daten per Regulären Ausdruck

Screenshots

13f41842 c4563855 3700b6a0

Download

http://jharddiscspy.mynotiz.de/download/jHardDiscSpy_1.2.zip


Java JList automatisches nach unten scrollen nach hinzufügen

Posted: September 26th, 2010 | Filed under: Programmieren, Tutorials | Tags: , , , , , , , | No Comments »

Ich schreibe gerade an einem Programm welches alle Festplattenaktivitäten in einer JList auflistet. Da sehr viele Aktionen anfallen möchte ich dass die, von einer ScrollPane umgebene, JList automatisch nach unten scrollt sobald ein Eintrag hinzugefügt wird. Quasi ein JList Auto-Scroll Down. Das Java-Beispielprogramm sieht folgendermaßen aus.

Screenshot

jlist_autoscroll_example

Quellcode

Und hier der erlösende Quellcode dazu.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

public class Main extends JFrame {

  private JList jList;
  private JScrollPane jScrollPane;
  private DefaultListModel defaultListModel;
  private JButton jButton;

  public Main() {
    super();
    initGUI();
  }

  private void initGUI() {
    try {
      BorderLayout thisLayout = new BorderLayout();
      this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
      this.getContentPane().setLayout(thisLayout);

      defaultListModel = new DefaultListModel();

      jList = new JList();
      jList.setModel(defaultListModel);

      jScrollPane = new JScrollPane();
      jScrollPane.setPreferredSize(new java.awt.Dimension(392, 245));
      jScrollPane.setViewportView(jList);
     
      jButton = new JButton();
      jButton.setText("add");
      jButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          // Wichtig ist dass das Hinzufügen alles in einem seperaten
          // Thread abläuft damit die Oberfläche nicht hängen bleibt
          // und damit es keine Fehler beim dem Scrollen gibt(IndexOutOfBoundsException).
          SwingUtilities.invokeLater(new Runnable() {
            public void run() {
              // Element dem DefaultListModel hinzufügen.
              // Angezeigt wird dann die toString Methode des
              // Objektes, in diesem Fall ist das der String
              // selbst.
              defaultListModel.addElement(new String(System.currentTimeMillis() + ""));
             
              // Anschließend den letzten index des Model sichtbar setzen,
              // dies Bewirkt den automatischen Scroll nach unten.
              jList.ensureIndexIsVisible(defaultListModel.size() - 1);
            }
          });
        }
      });

      this.getContentPane().add(jScrollPane, BorderLayout.CENTER);
      this.getContentPane().add(jButton, BorderLayout.SOUTH);

      this.setTitle("JList Auto-Scroll Beispiel");
      this.pack();
      this.setSize(400, 300);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        Main inst = new Main();
        inst.setLocationRelativeTo(null);
        inst.setVisible(true);
      }
    });
  }
}

Download

Main.java

Ich hoffe ich konnte einigen von euch helfen.