Archiv für die Kategorie ‘Java’

Textbearbeitung mit Ant

Donnerstag, 10. Juni 2010

Mit folgendem Tag werden innerhalb der JNLP-Datei die Werte für “codebase” und “main-class” ausgetauscht.

<replace dir="C:/Entwicklung/Projekt/dist">
   <include name="launch.jnlp"/>
   <replacefilter token=‘codebase="file:/C:/Entwicklung/Projekt/dist/"’ value=‘codebase="http://domain.de/p/"’/>
   <replacefilter token=‘main-class="bob.pokolm.Main"’ value=‘main-class="bob.pokolm.MainTwo"’/>
</replace>

Benutzereingabe bei Ant

Donnerstag, 10. Juni 2010

Mit dem folgenden Fragment wird ein Kennwort erfragt, ein Skript gestartet und das Kennwort als Parameter übergeben.

<target name="deploy-over-script" depends="clean,jar" description="Kopiert Projekt zum Server.">
   <input message="Kennwort:"  addproperty="my.pass" />
   <exec executable="cmd">
      <arg value="/c"/>
      <arg value="C:/Projekt/deploy_over_script.cmd"/>
      <arg value="${my.pass}"/>
   </exec>
</target>

Neural Networks

Donnerstag, 10. Juni 2010

Velocity ohne Template-Datei

Mittwoch, 21. Januar 2009
import org.apache.velocity.app.Velocity;
import org.apache.velocity.VelocityContext;
import java.io.StringWriter;

public class StartYourEngines {
  public static void main(String[] args) throws Exception {

    VelocityContext context = new VelocityContext();
    context.put("args", args);

    String template = "args = #foreach ($arg in $args) $arg #end";

    StringWriter writer = new StringWriter();

    Velocity.init();
    Velocity.evaluate(context,
                      writer,
                      "LOG",  // used for logging
                      template);

    System.out.println(writer.getBuffer());
  }
}

Weitere Infos von java.net oder “a cup of java”.

Unicode und Windows CMD

Sonntag, 14. Oktober 2007

Möchte man Umlaute (als Unicode) auf der Windows XP Konsole ausgeben, klappt dies nicht.

Ursache: Windows verwendet in der Konsole CP850 (DOS) und sonst CP1252 (ANSI). Java wählt als Standard-Encoding die CP1252, was wunderbar funktioniert, wenn man beispielsweise Dateien liest und schreibt. In der Konsole übersetzt Jave den internen Unicode nach CP1252 und sendet diese Bytes an die Konsole, die wiederum CP850 verwendet und diese falsch interpretiert.

(more…)

Package mit JavaDoc dokumentieren

Freitag, 17. August 2007

Screenshot JavaDoc Möchte man mit JavaDoc ein Package dokumentieren, legt man im entsprechenden Source-Ordner eine Datei package.html an. Des weiteren kann man seine Dokumentation durch beliebige andere Files (z.B. Bilder) erweitert. Zu diesem Zweck legt man die Dateien in einem Order doc-files ab. Der Bezug innerhalb der Dokumentation wird dann über relative Pfade realisiert (z.B. <img src="doc-files/package.png">).

(more…)

Kennwort mit JOptionPane abfragen

Sonntag, 10. Juni 2007
JPasswordField jPasswordField = new JPasswordField();
Object[] message = {"Kennwort:\n", jPasswordField};
           
int a = JOptionPane.showConfirmDialog(null, message,
       "Kennwort eingeben", JOptionPane.OK_CANCEL_OPTION,
       JOptionPane.QUESTION_MESSAGE);

if(a == JOptionPane.OK_OPTION) {
   String pwd = new String(jPasswordField.getPassword());
   System.out.println("Kennwort: " + pwd);
}

Tastatur zentral nutzen

Mittwoch, 28. März 2007

Der klassische Weg eine Komponente und eine Tastenkobination zu verbinden führt über die Key- und ActionMap.

Action doNothing = new AbstractAction() {
   public void actionPerformed(ActionEvent e) {
      System.out.println("F2");
   }
};
       
jPanel.getInputMap().put(
      KeyStroke.getKeyStroke("F2"), "doActionF2");
       
jPanel.getActionMap().put("doActionF2",
      doNothing);

Jede Komponente kennt drei InputMap, um nut bei bestimmten Fokuszuständen reagieren zu müssen.

Möchte man eine Tastenkombination für die gesamte Anwendnung zur Verfügung stellen, muss man den KeyboardFocusManager nutzen.

KeyEventDispatcher disp = new KeyEventDispatcher() {
   public boolean dispatchKeyEvent(KeyEvent evt) {
      if(evt.getKeyCode() == KeyEvent.VK_F2 &&
            evt.getId() == KeyEvent.KEY_RELEASED){
         System.out.println("F2");
      }
      return true;
   }
};
       
KeyboardFocusManager.getCurrentKeyboardFocusManager().
      addKeyEventDispatcher(disp);

Weitere Informationen unter:

http://java.sun.com/products/jlf/ed2/book/
http://java.sun.com/docs/books/tutorial/
http://javamagazin.de/itr/online_artikel/