Java MessageDialog / Messagebox

Posted: Januar 2nd, 2009 | Filed under: Programmieren | Tags: , , , , , , , , | 17 Comments »

Wenn man Grafische Benutzer Oberflächen kurz GUIs in Java realisieren braucht man oft sogenannte MessageBoxen, Popupfenster oder um in der Java Sprache zu bleiben MessageDialoge. Diese können durch eine einfache Zeile umgesetzt werden.  Der MessageDialog kann in 5 verschiedenen Arten mit Hilfe der Klasse JOptionPane dargestellt werden.

  • ohne Icon (JOptionPane.PLAIN_MESSAGE)
  • mit Ausrufezeichen (JOptionPane.CANCEL_OPTION)
  • mit Fragezeichen (JOptionPane.QUESTION_MESSAGE)
  • mit Warnkreuz (JOptionPane.ERROR_MESSAGE)
  • mit Infozeichen (JOptionPane.INFORMATION_MESSAGE)
import javax.swing.JOptionPane;

public class MessageDialog {
     public static void main(String[] args) {
          JOptionPane.showMessageDialog(null,"Kein Icon","Titel", JOptionPane.PLAIN_MESSAGE);
          JOptionPane.showMessageDialog(null,"Infozeichen","Titel", JOptionPane.INFORMATION_MESSAGE);
          JOptionPane.showMessageDialog(null,"Fragezeichen","Titel", JOptionPane.QUESTION_MESSAGE);
          JOptionPane.showMessageDialog(null,"Ausrufezeichen","Titel", JOptionPane.CANCEL_OPTION);
          JOptionPane.showMessageDialog(null,"Kreiz","Titel", JOptionPane.ERROR_MESSAGE);
     }
}
MessageDialog - Ohne Icon

MessageDialog - Ohne Icon

MessageDialog - mit Ausrufezeichen

MessageDialog - mit Ausrufezeichen

MessageDialog - mit Fragezeichen

MessageDialog - mit Fragezeichen

MessageDialog - mit Warnkreuz

MessageDialog - mit Warnkreuz

Hier könnt ihr den Quellcode herunterladen.


Java JMenuBar Beispiel / Tutorial

Posted: Dezember 29th, 2008 | Filed under: Programmieren | Tags: , , , , , , , , , | 11 Comments »

Hallo Leute, heute wollte ich euch zeigen wie man eine Menüleiste in Java realisiert.
Dazu erstellen wir ein JFrame und fügen diesem eine JMenuBar hinzu. Die JMenuBar gibt das Rahmenwerk für das jeweilige JMenu. Ein JMenu repräsentiert ein Navigationspunkt. Um Menüunterpunkte zu erzeugen fügen wir unserem JMenu ein JMenuItem hinzu. So einfach geht’s.

JMenuBar -> JMenu (z.B.: Hilfe) -> JMenuItem (z.B.: Über)

JMenuBarBeispiel Screenshot

Am Besten ihr schaut euch den folgenden Quellcode an.

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

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class JMenuBarBeispiel implements ActionListener {
     
     JFrame applikation;
     Container container;
     
     // Menüleiste
     JMenuBar menueLeiste;
     
     // Menüleiste Elemente
     JMenu datei;
     JMenu hilfe;
     
     // Datei
     JMenuItem oeffnen;
     JMenuItem beenden;
     
     // Hilfe
     JMenuItem faq;
     JMenuItem about;

     // Textfeld
     JTextArea textarea;
     
     public JMenuBarBeispiel() {
          applikation = new JFrame("JMenuBar Beispiel");
          container = applikation.getContentPane();
          
          // Menüleiste erzeugen
          menueLeiste = new JMenuBar();
          
          // Menüelemente erzeugen
          datei = new JMenu("Datei");
          hilfe = new JMenu("Hilfe");
          
          // Untermenüelemente erzeugen
          oeffnen = new JMenuItem("öffnen");
          oeffnen.addActionListener(this);
          beenden = new JMenuItem("beenden");
          beenden.addActionListener(this);
          faq = new JMenuItem("F.A.Q.");
          faq.addActionListener(this);
          about = new JMenuItem("Über");
          about.addActionListener(this);
          
          // Menüelemente hinzufügen
          menueLeiste.add(datei);
          menueLeiste.add(hilfe);
          
          // Untermenüelemente hinzufügen
          datei.add(oeffnen);
          datei.add(beenden);
          hilfe.add(faq);
          hilfe.add(about);

          // Textfeld erzeugen
          textarea = new JTextArea();          
          
          applikation.add(menueLeiste, BorderLayout.NORTH);
          applikation.add(new JScrollPane(textarea), BorderLayout.CENTER);

          applikation.setSize(400300);
          applikation.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          applikation.setVisible(true);
     }
     
     public void actionPerformed(ActionEvent object) {
          if (object.getSource() == oeffnen){
               System.out.println("öffnen wurde angeklickt");
          }
          if (object.getSource() == beenden){
               System.out.println("beenden wurde angeklickt");
          }
          if (object.getSource() == faq){
               System.out.println("faq wurde angeklickt");
          }
          if (object.getSource() == about){
               System.out.println("über wurde angeklickt");
          }
     }
     
     public static void main(String[] args) {
          new JMenuBarBeispiel();
     }
}

Hier könnt ihr den Quellcode als Textdatei herunterladen.
Viel Spaß beim weiteren Programmieren. Ihr könnt mein Programm natürlich auch gerne als Vorlage verwenden.


Java: Radiobox & Checkbox am Beispiel Pizzarechner mit Swing & AWT

Posted: November 28th, 2008 | Filed under: Programmieren | Tags: , , , , , , | 3 Comments »

Aufgabenstellung

  • Erstellung eines Pizza Berechnungsprogramm
  • Pizzaboden ohne Belag kostet für eine kleine Pizza 4€, für eine mittlere Pizza 4.5€ und eine große Pizza 5€
  • jeder Belag kostet zusätzlich für eine kleine Pizza 0.5 €, für eine mittlere Pizza 0.75€ und für eine große Pizza 1€
  • als Beläge stehen zu Auswahl: Salami, Schinken, Pilze, Thunfisch, Scampi und Ananas

Grundgerüst

Als erstes müssen wir uns überlegen wie unser Programm aussehen soll. Als Hilfestellung hier ein Screenshot als Lösungsvorschlag (muss natürlich nicht unbedingt so aussehen).

Programm Aufbau

Programm Aufbau

Layoutwahl

Bei Java gibt es viele Möglichkeiten grafische Oberflächen zu gestalten. Eines der einfachsten Methoden wird durch das BorderLayout zur Verfügung gestellt. Folgende Grafik erläutert den Aufbau dieses Layouts. Schnell wird deutlich welche Möglichkeiten wir haben. Die Größe der Pizza können wir im Bereich „North“ packen, in „West“ die Grafik der Pizza, in „Center“ unsere Beläge und in „South“ der errechnete Preis. Das übrig gebliebene „East“ wird nicht belegt und fällt somit einfach raus.

BorderLayout

BorderLayout

Systematische Realisierung

Jetzt stellt sich die Frage wie man das ganze realisiert. Ich habe mal ein Schaubild entworfen um dies genauer zu verdeutlichen.

Aufbau des Java Programms

Aufbau des Java Programms

Die Applikation soll sich in einem Fenster öffnen. Dieses Fenster realisieren wir durch die Swing Komponente JFrame. Innerhalb dieses Fenster brauchen wir einen Container um unsere einzelnen Elemente hinzuzufügen. Dem Container können wird dann wiederum mit Untercontainern (sog. JPanel) oder direkt mit Gui Elementen füllen. Ein JPanel ist nicht unbedingt notwendig wenn wir nicht mehr als eine Komponente in North, West, Center oder South hinzufügen wollen.

JPanel (North)

Um Radioboxes in Java zu realisieren brauchen wir Checkboxes die sich innerhalb einer Checkboxgroup befinden. Die Checkboxes sind somit automatisch Radioboxes. Um die Checkboxen wie im Schema richtig zu positionieren müssen wir dem JPanel (North) ein Layout geben. Hierzu verwenden wir das GridLayout. Dieses Layout hat Ähnlichkeiten mit einer Tabelle, wir können also Spalten und Reihenanzahl angeben. Hier im Beispiel bei uns wäre das 1 Reihe und 3 Spalten.

JLabel (West)

Da wir hier lediglich eine Komponente im Bereich West benötigen brauchen wir kein zusätzliches Panel. JLabels können sowohl Text als auch Bild enthalten.

JPanel (Center)

Die Checkboxes im JPanel (Center) werden in einem GridLayout mit 3 Reihe und 2 Spalten realisiert.

JLabel (South)

Auch hier brauchen wir kein zusätzliches JPanel und wir fügen unser JLabel lediglich in den South Bereich ein.

Technische Realisierung

Hier gehts zum Quellcode (Pizzarechner.java)

  • Anlegen der Klasse
  • Anlegen aller Komponenten
  • Elemente den Panels und dem Layout hinzufügen
  • Klasse wird um eine Methode mit dem Namen public void itemStateChanged(ItemEvent arg0) erweitert. Diese Methode horcht die Checkboxen ab und reagiert wenn sie gedrückt worden sind. Vorher müssen jedoch diesem itemListener die Checkboxes hinzugefügt werden. Zum Beispeil: checkboxSalami.addItemListener(this);
  • Einbinden der Anwendungslogik in die Methode itemStateChanged. Nach jedem klicken der Checkboxes wird der Preis der Pizza neu berrechnet

Alle Details sind sehr gut aus dem Quellcode ersichtlich:


import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Pizzarechner implements ItemListener {

  // JFrame
  JFrame frameApplikation;

  // Container
  Container containerApplikation;

  // Panel
  JPanel panelTop;
  JPanel panelMiddle;

  // Checkboxgroup
  CheckboxGroup checkboxgroupRadio;

  // Checkboxen Radio
  Checkbox checkboxKlein;
  Checkbox checkboxMittel;
  Checkbox checkboxGross;

  // Checkboxen Check
  Checkbox checkboxSalami;
  Checkbox checkboxSchinken;
  Checkbox checkboxPilze;
  Checkbox checkboxThunfisch;
  Checkbox checkboxScampi;
  Checkbox checkboxAnanas;

  // Label
  JLabel labelErgebnis;

  // Grafik
  JLabel image;

  
  public Pizzarechner() {
    // JFrame
    frameApplikation = new JFrame();
    frameApplikation.setTitle("Pizzarechner Version 1.0");

    // Container
    containerApplikation = frameApplikation.getContentPane();

    // Panel
    panelTop = new JPanel();
    panelMiddle = new JPanel();

    // Checkboxgroup Radio
    checkboxgroupRadio = new CheckboxGroup();

    // Checkboxen Radio
    checkboxKlein = new Checkbox("klein", checkboxgroupRadio, false);
    checkboxKlein.addItemListener(this);
    checkboxMittel = new Checkbox("mittel", checkboxgroupRadio, false);
    checkboxMittel.addItemListener(this);
    checkboxGross = new Checkbox("groß", checkboxgroupRadio, false);
    checkboxGross.addItemListener(this);
    
    // Grafik Label
     image = new JLabel(new ImageIcon("pizza_eye.gif"));

    // Checkboxen Check
    checkboxSalami = new Checkbox("Salami");
    checkboxSalami.addItemListener(this);
    checkboxSchinken = new Checkbox("Schinken");
    checkboxSchinken.addItemListener(this);
    checkboxPilze = new Checkbox("Pilze");
    checkboxPilze.addItemListener(this);
    checkboxThunfisch = new Checkbox("Thunfisch");
    checkboxThunfisch.addItemListener(this);
    checkboxScampi = new Checkbox("Scampi");
    checkboxScampi.addItemListener(this);
    checkboxAnanas = new Checkbox("Ananas");
    checkboxAnanas.addItemListener(this);

    // Label
    labelErgebnis = new JLabel("Preis: - "€);
    Font font = new Font("Pizza", Font.BOLD , 20);
    labelErgebnis.setFont(font);

    // panel Top
    panelTop.setLayout(new GridLayout(13));
    panelTop.add(checkboxKlein);
    panelTop.add(checkboxMittel);
    panelTop.add(checkboxGross);

    // panel Middle
    panelMiddle.setLayout(new GridLayout(53));
    panelMiddle.add(checkboxSalami);
    panelMiddle.add(checkboxSchinken);
    panelMiddle.add(checkboxPilze);
    panelMiddle.add(checkboxThunfisch);
    panelMiddle.add(checkboxScampi);
    panelMiddle.add(checkboxAnanas);

    // container
    containerApplikation.add(panelTop, BorderLayout.NORTH);
    containerApplikation.add(image, BorderLayout.WEST);
    containerApplikation.add(panelMiddle, BorderLayout.CENTER);
    containerApplikation.add(labelErgebnis, BorderLayout.SOUTH);

    frameApplikation.pack();
    frameApplikation.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frameApplikation.setVisible(true);
  }

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

  public void itemStateChanged(ItemEvent arg0) {

    // Grundpreise
    double grundpreis = 0;

    // Wieviel Beläge
    int belagZaehler = 0;

    // Preis pro Belag
    double belagPreis = 0;

    // Radio
    Checkbox selected = checkboxgroupRadio.getSelectedCheckbox();
    if (selected != null) {
      if (selected.getLabel().equals("klein")) {
        grundpreis = 4;
        belagPreis = 0.5;
      }
      if (selected.getLabel().equals("mittel")) {
        grundpreis = 4.5;
        belagPreis = 0.75;
      }
      if (selected.getLabel().equals("groß")) {
        grundpreis = 5;
        belagPreis = 1;
      }

      // Checkbox
      if (checkboxSalami.getState() == true) {
        belagZaehler++;
      }
      if (checkboxSchinken.getState() == true) {
        belagZaehler++;
      }
      if (checkboxPilze.getState() == true) {
        belagZaehler++;
      }
      if (checkboxThunfisch.getState() == true) {
        belagZaehler++;
      }
      if (checkboxScampi.getState() == true) {
        belagZaehler++;
      }
      if (checkboxAnanas.getState() == true) {
        belagZaehler++;
      }

      // Preisberechnung
      belagPreis = grundpreis + (belagPreis * belagZaehler);
      labelErgebnis
          .setText("Preis: " + Double.toString(belagPreis" €");
    else
      labelErgebnis.setText("Bitte Größe angeben!");
  }
}

Das Programm

Programm Screenshot

Programm Screenshot

Download

Ich hoffe ich konnte euch helfen.

Mit freundlichen Grüßen aus Karlsruhe euer Admin 😀


Mit Java Inhalt einer Datei ausgeben

Posted: November 20th, 2008 | Filed under: Programmieren | Tags: , , , , | 4 Comments »

So jetzt noch einmal wieder ein bisschen Quellcode vor dem Schlafen gehen. Diesmal soll das Programm lediglich den Inhalt einer Datei auf der Konsole ausgeben.

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileWrite {
  public static void main(String[] args) {
    try {
      BufferedReader br = new BufferedReader(new FileReader(
          "C:/testdatei.txt"));
      String zeile;
      try {
        while ((zeile = br.readLine()) != null) {
          System.out.println(zeile);
        }
      catch (IOException e) {
        e.printStackTrace();
      }
    catch (FileNotFoundException e1) {
      e1.printStackTrace();
    }
  }
}

Mit Java die Zwischenablage auslesen / ausgeben

Posted: August 22nd, 2008 | Filed under: Programmieren, Tutorials | Tags: , , , , | 5 Comments »

Zum Feierabend nochn bisschen Quellcode :). Ihr wollte mit Java auslesen was in der Zwischenablage liegt (STRG+C / Kopieren). Mit dem folgenden Quellcode sollte euch geholfen sein.

import java.awt.Toolkit; 
import java.awt.datatransfer.*; 
 
class PrintClipboard
  
  public static void mainString[] args throws Exception{
    Clipboard systemClipboard;
    systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard()
    Transferable transferData = systemClipboard.getContentsnull )
    for(DataFlavor dataFlavor : transferData.getTransferDataFlavors()){ 
      Object content = transferData.getTransferDatadataFlavor )
      if content instanceof String 
      
        System.out.printlncontent );
        break;
      }
    }
  }
}

Quelltext-Quelle: http://openbook.galileocomputing.de/javainsel9/javainsel_19_025.htm#t2t34


Pages: Vorherige Seite 1 2 3 4 5 6 7 8 9 10