Archiv der Kategorie: Java

Java Swing Box Widget für ein besseres Layout

Tach zusammen,

ich bin seit neustem ein Fan vom Box Widget aus Java Swing. Mit diesem Widget lassen sich mehrere Java Swing Componenten beliebig auf dem Bildschirm Positionieren, wenn man nur einfache Regeln beachtet^^

Neulich hatte ich das Problem, dass ich einen JButton immer an der rechten Seite meines JFrames haben wollte. Ich hab stunden lang nach einer Lösung gesucht bzw. mir meine eigene zusammen gebastelt. Raus kam eine Positions Berechnung, die ich mit einem ComponentListener gemacht habe. Im Endeffekt genau das Verhalten was ich haben wollte aber doch bissl unschön programmiert und dauerte auch viel zu Lange.

Ein Arbeitskollege hat mich dann auf die Idee gebracht es mit dem Box Widget bzw mit der Methode Box.createGlue() zu versuchen… und siehe da.. es funktioniert. Mit weniger Aufwand und weniger Zeilen code -.-

Naja.. Das Box Widget kann ich jedem ans Herz legen. Es ist vieles damit machbar. Hier noch der Code mit meinem Layout Problem. Am Ende noch einen Link zur Benutzung des Box Widget.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private Box createNavigationPanel() {
 
   Box navigationButtonFrame = Box.createHorizontalBox();
   Dimension navDim = new Dimension(800,35);
   navigationButtonFrame.setPreferredSize(navDim);
   navigationButtonFrame.setMinimumSize(navDim);
   navigationButtonFrame.setMaximumSize(navDim);
   NavigationButtonFrame.setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, Color.BLACK));
 
   //Das ist die wichtige Stelle ^^
   navigationButtonFrame.add(Box.createGlue());
   navigationButtonFrame.add(getCloseButton());
   navigationButtonFrame.add(Box.createRigidArea(new Dimension(10,0)));
 
   return navigationButtonFrame;
 }

In Zeile 11 füge ich zur Box eine unsichtbare Box mit Box.createGlue() hinzu. Diese unsichtbare Box nimmt sich den gesammten freien Platz bis zum Button und wird immer wieder neu gezeichnet, wenn das JFrame verkleinert oder vergrößert wird. Total praktisch ^^ So bleibt der JButton immer an der gewünschten Stelle und man kann sich ne Menge Code sparen -.-

Link: Wie benutze ich das Box Widget
Link: Box Api

Veröffentlicht unter Java | Verschlagwortet mit , , , , , , | Hinterlasse einen Kommentar

[AMS] erster Source Code im Gforge

Nun ist es soweit…

ich darf stolz verkünden, dass der erste Source Code von ams veröffentlich wurde. Hier zu finden. Allerdings ist es noch nicht viel und die GUI ist auch noch nicht fertig.

Den ersten Release setze ich für den 08.03.2009 an. Ich hoffe, dass ich diesen Termin auch einhalten kann, da die Woche davor meine Zwischenprüfung ansteht.

Veröffentlicht unter AMS, Java, News, Projekte | Verschlagwortet mit , , , , , , , | Hinterlasse einen Kommentar

Projekt – Address Management System (ams)[Update]

Tach zusammen,

vor paar Wochen habe ich damit angefangen ein neues Projekt zu starten. Address Management System oder auch kurz ams, ist der Name des Projektes. Mit diesem Programm kann jeder seine Adressen einfach und benutzerfreundlich verwalten. So hat man wenigstens eine Zentrale stelle für seine ganzen Adressen ^^

Das ganze Projekt wird in Java geschrieben und ist daher auch Plattformunabhängig. Die GUI an sich wird mit Java Swing umgesetzt. Ich weiß noch nicht wann ich die erste Version raus bringen kann aber ich hoffe, dass es nicht lange dauern wird. Einen Link zu den Repos findet ihr rechts oben. Allerdings folgt der code erst 1, 2 Tage später.

Hier eine kleine Liste was das “Tool” so können soll bzw was ich mir vorgestellt hab:

  • Adressen sollen einfach und schnell hinzugefügt werden können
  • Es wird einen Navigationsbaum geben, sodass man schnell an seine Adressen ran kommen kann
  • ein Suchfeld, dass diesen Baum anhand eines Namens durchsucht und das gewünschte Ergebniss liefert
  • Die Adressen werden in einem XML file gespeichert.. evtl. aber auch in einer Datenbank
  • Es wird eine Backup Möglichkeit geben
  • Adressen sollen auch exportiert werden (pdf, excel evtl. etc)
  • Import soll auch verfügbar sein
  • Internationalisierung
  • Konfiguration des Projektes anhand eines XML file´s
  • uvm.
  • Es wird ein spannendes Projekt und ich hoffe, dass ich es zum Abschluss bringen kann. Wenn dieses Projekt einen gewissen Status erreicht hat, wird es dafür eine kleine Projekt seite geben.

    Veröffentlicht unter AMS, Java, Projekte | Verschlagwortet mit , , , , , , | Hinterlasse einen Kommentar

    JTextArea/JScrollPane – Position des Scrollbalkens

    Nabend zusammen,

    musste auf der Arbeit ein JTextArea in einem JScrollPane erstellen, damit ich längere Texte anzeigen kann. Da aber jedes mal der Scrollbalken nach unten springt, muss ich immer nach oben scrollen. Auf dauer nervig -.-

    nach langem suchen und ausprobieren hab ich es geschafft, dass der Scrollbalken am Anfang des Textes stehen bleibt ^^

    Hier mal der Code, falls jmd ein ähnliches Problem hat:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    private JScrollPane scrollPosition() {
     
    JTextArea text = new JTextArea();
    JScrollPane panel = new JScrollPane(text);
    text.setEditable(false);
    text.setLineWrap(true);
    text.setWrapStyleWord(true);
    text.setText("Hallo");
    text.setCaretPosition(0);
     
    panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0));
    panel.setPreferredSize(new Dimension(560,100));
    panel.setMaximumSize(new Dimension(560,100));
     
    return panel;
    }

    Die Lösung ist eigentlich recht simpel aber mann muss erstmal drauf kommen. Mit setCaretPosition(0) bleibt der Scrollbalken automatisch ganz oben. Allerdings darf man diese Zeile erst nach einfügen des Textes schreiben.

    und jetzt mach ich feierabend :-)

    Veröffentlicht unter Java | Verschlagwortet mit , , , | Hinterlasse einen Kommentar