Java JComboBox Beispiel

Posted: Juli 28th, 2009 | Author: admin | Filed under: Programmieren | Tags: , , , , , , , | No Comments »

Heute möchte ich zeigen wie ihr ein Dropdownmenü in Java realisieren könnt. Diese Dropdownkomponente nennt sich JComboBox. Die Werte der JComboBox können über einen DefaultComboBoxModel definiert werden. Das DefaultComboBoxModel kann über einen Vector die Werte des DropDownMenüs erhalten. Dabei können nicht nur Strings sondern auch andere Objekte in diesen Vector gelegt werden. Die toString() – Methode des jeweiligen Objektes gibt den Anzeigewert in der JComboBox an. Um Interaktionen der JComboBox zu verarbeiten wird der ListDataListener benötigt. Bei meinem Beispielprogramm werden Strings in den Vector gelegt.

Beim drücken auf den “wechseln” – Button wird das ComboBoxModel ausgetauscht und die Werte ändern sich!

JComboBox Beispiel Programm

JComboBox Beispiel Programm

Quelltext

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;


public class JComboBoxBeispiel implements ActionListener, ListDataListener {
  
  private Container mainContainer;
  private JFrame frame;
  
  private JComboBox dropDown;
  private DefaultComboBoxModel comboBoxModel1;
  private DefaultComboBoxModel comboBoxModel2;
  
  private JButton wechseln;

  public JComboBoxBeispiel(){
    
    frame = new JFrame();
    mainContainer = frame.getContentPane();
    frame.setLayout(new BorderLayout());

    wechseln = new JButton("wechseln");
    wechseln.addActionListener(this);

    // Combobox instanziieren
    dropDown = new JComboBox();
    
    // ComboBoxModel erzeugen
    // Vector erstellen mit Beispielwerten
    Vector<String> tiere = new Vector<String>();
    tiere.add("Hund");
    tiere.add("Katze");
    tiere.add("Maus");
    Vector<String> autos = new Vector<String>();
    autos.add("BMW 3er");
    autos.add("VW-Käfer");
    autos.add("Merceds SLK");    
    
    comboBoxModel1 = new DefaultComboBoxModel(tiere);
    comboBoxModel1.addListDataListener(this);
    comboBoxModel2 = new DefaultComboBoxModel(autos);
    comboBoxModel2.addListDataListener(this);
    
    // ComboBoxModel setzen
    dropDown.setModel(comboBoxModel1);
    
    mainContainer.add(wechseln, BorderLayout.NORTH);
    
    mainContainer.add(dropDown);
    
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setTitle("JComboBox Beispiel");
    frame.setVisible(true);

  }
  
  public static void main(String[] args) {
    new JComboBoxBeispiel();
  }

  public void actionPerformed(ActionEvent arg0) {
    if (arg0.getSource() == wechseln){
      if (dropDown.getModel() == comboBoxModel1){
        dropDown.setModel(comboBoxModel2);
      }else{
        dropDown.setModel(comboBoxModel1);
      }
    }
  }

  public void contentsChanged(ListDataEvent arg0) {
    System.out.println(dropDown.getModel().getSelectedItem());
  }

  public void intervalAdded(ListDataEvent arg0) {
    // TODO Auto-generated method stub
  }

  public void intervalRemoved(ListDataEvent arg0) {
    // TODO Auto-generated method stub
  }
}

Java JTable Beispiel

Posted: Juni 4th, 2009 | Author: admin | Filed under: Programmieren | Tags: , , , , , , | 2 Comments »
JTable - Screenshot

JTable - Screenshot

Seit längerem beschäftigt mich die Problematik “Tabellen auf der Benutzeroberfläche von Java Anwendungen abzubilden”. Mit Hilfe der Swing Komponente JTable ist dies möglich. Unsere Beispieltabelle soll zwei Spalten besitzen. Als erstes legen wir diese mittels eines String-Arrays an. Anschließend erzeugen wir unsere Daten die wir in einem zweidimensionalen Array ablegen. Um die Tabellenspalten anzuzeigen müssen wir die Tabelle über eine JScrollPane zum Container hinzufügen. Die Tabelleninhalte können per Knopfdruck getauscht werden. Hier der Quellcode.

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Tabelle implements ActionListener {

     boolean tableModel;
     
     Container mainContainer;
     JFrame frame;
     
     JButton wechseln;
     JTable tabelle;
     DefaultTableModel tabellenmodellGruppeA;
     DefaultTableModel tabellenmodellGruppeB;

     // Spalten anlegen
     String spalten[] "Mannschaft""Punkte"};
     

     // Datenmodelle anlegen
     String gruppeA[][] {
               "Die Gelben Uboote""9.6" },
               "FatFighters""8.1" },
               "Biertrinker""6.2" }
     };
     
     String gruppeB[][] {
               "KillerBienen""10.4" },
               "Citties""6.2" },
               "Team ohne Namen""5.8" }
     };

     public Tabelle() {
          frame = new JFrame();
          mainContainer = frame.getContentPane();
          frame.setLayout(new BorderLayout());

          wechseln = new JButton("wechseln");
          wechseln.addActionListener(this);

          mainContainer.add(wechseln, BorderLayout.NORTH);
          
          tabellenmodellGruppeA = new DefaultTableModel(gruppeA, spalten);
          tabellenmodellGruppeB = new DefaultTableModel(gruppeB, spalten);
          
          tabelle = new JTable(tabellenmodellGruppeA);

          // Um die Spalten der Tabelle anzuzeigen muss die Tabelle
          // über eine ScrollPane hinzugefügt werden
          mainContainer.add(new JScrollPane(tabelle));
          
          frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
          frame.pack();
          frame.setTitle("JTable Beispiel");
          frame.setVisible(true);
     }

     public void actionPerformed(ActionEvent arg0) {
          if (tableModel){
               tabelle.setModel(tabellenmodellGruppeA);     
               tableModel = false;
          }else{
               tabelle.setModel(tabellenmodellGruppeB);
               tableModel = true;
          }
     }
     
     public static void main(String[] args) {
          new Tabelle();
     }
}

Hier könnt ihr euch den Quellcode herunterladen.
Drückt man auf den Button wird das Table Model neu gesetzt.


Java Regular Expression Tester

Posted: April 20th, 2009 | Author: admin | Filed under: Programmieren, Software | Tags: , , , , , , | 4 Comments »

Hi Leute, nach relativ kurzer Entwicklungszeit habe ich nun mein 4. richtiges Tool auf die Beine gestellt. Das Programm ermöglicht es Java Regular Expressions auszutesten.
Wird ein Treffer gelandet so wird dieser rot markiert. Alle Treffer werden gezählt und über ein Status Feld erfährt man ob die Regular Expression oder ob der Reguläre Ausdruck gültig ist oder nicht. Hier gelangt ihr zur Projektseite.

Screenshot

java-regular-expression-tester Screenshot

java-regular-expression-tester Screenshot

Download

http://java-regular-expression-tester.mynotiz.de/download/javaRegularExpressionTester_1.2.jar
oder
Java Regular Expression Tester, Download bei heise
Über Feedback würde ich mich sehr freuen.


Java Text in eine Datei schreiben

Posted: April 16th, 2009 | Author: admin | Filed under: Programmieren | Tags: , , , , , , , , , , | 4 Comments »

Heute möchte ich euch zeigen wie man mittels Java einfach man einen Text in eine Datei schreiben kann. Das ganze wird über den FileWriter realisiert. Dieser kann verschieden genutzt werden. Zum einen ist es möglich eine vorhandene Datei zu überschreiben, zum anderen kann ein Text an eine bereits bestehende Datei angehängt werden. Wie das funktioniert zeige ich euch im Quelltext.

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class FileWriterExample {
  
  FileWriter writer;
  File file;
  
  public void schreiben(){
    // File anlegen
     file = new File("FileWriterTest.txt");
     try {
       // new FileWriter(file ,true) - falls die Datei bereits existiert
       // werden die Bytes an das Ende der Datei geschrieben
       
       // new FileWriter(file) - falls die Datei bereits existiert
       // wird diese überschrieben
       writer = new FileWriter(file ,true);
       
       // Text wird in den Stream geschrieben
       writer.write("Hallo Wie gehts?");
       
       // Platformunabhängiger Zeilenumbruch wird in den Stream geschrieben
       writer.write(System.getProperty("line.separator"));

       // Text wird in den Stream geschrieben       
       writer.write("Danke mir gehts gut!");
       
       
       // Schreibt den Stream in die Datei
       // Sollte immer am Ende ausgeführt werden, sodass der Stream 
       // leer ist und alles in der Datei steht.
       writer.flush();
       
       // Schließt den Stream
       writer.close();
    catch (IOException e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {
    FileWriterExample fileWriterExample = new FileWriterExample();
    fileWriterExample.schreiben();
  }
}

Hier könnt ihr euch den Quelltext (FileWriterExample.java) herunterladen.


Mit Java etwas in die Zwischenablage schreiben

Posted: April 3rd, 2009 | Author: admin | Filed under: Programmieren | Tags: , , , , , | No Comments »

Heute mal noch ein bisschen Java Quellcode. Ich hatte vor kurzem das Problem dass ich einen Text aus einer JTextArea in die Zwischenablage kopieren musste. In einem älteren Post bin ich schon mal näher auf das Auslesen der Zwischenablage eingegangen. Hier der Quellcode zum füllen der Zwischenablage.

import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;


public class CopyToClipboard {
     public static void main(String[] args) {
          Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
               new StringSelection("Ich bin jetzt in der Zwischenablage :)")null
          );
     }
}