Java: Swing: Unterschied zwischen den Versionen

Aus Flinkwiki
Wechseln zu: Navigation, Suche
(Netbeans GUI Builder)
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
<div align="right"><big>'''[https://flinkwiki.de/index.php?title=Kategorie:Alle_Seiten Seitenübersicht]'''</big></div>
 
<div align="right"><big>'''[https://flinkwiki.de/index.php?title=Kategorie:Alle_Seiten Seitenübersicht]'''</big></div>
 
<div align="right">'''[[Java|Zur Seite "Java"]]'''</div>
 
<div align="right">'''[[Java|Zur Seite "Java"]]'''</div>
 +
<div align="right">'''[[Java: JavaFX|Zur Seite "Java: JavaFX"]]'''</div>
 +
<div align="right">'''[[IntelliJ IDEA|Zur Seite "IntelliJ IDEA"]]'''</div>
 +
<div align="right">'''[[Eclipse|Zur Seite "Eclipse"]]'''</div>
 
<div align="right">'''[[Netbeans|Zur Seite "Netbeans"]]'''</div>
 
<div align="right">'''[[Netbeans|Zur Seite "Netbeans"]]'''</div>
 +
<div align="right">'''[[Java: Beispiele|Zur Seite "Java: Beispiele"]]'''</div>
 +
<div align="right">'''[[Kotlin|Zur Seite "Kotlin"]]'''</div>
  
  
Zeile 9: Zeile 14:
  
 
----
 
----
 +
== Grundgerüst ==
  
 +
Beispiel: Fenster mit Label, Textfeld und Button
 +
<nowiki>
 +
package gbo;
 +
 +
import javax.swing.*;
 +
 +
/**
 +
*
 +
* @author itse
 +
*/
 +
 +
// Elternklasse JFrame
 +
public class GBO extends JFrame {
 +
 +
    // Initialisierung des Containers
 +
    JPanel pan = new JPanel();
 +
 +
    // Initialisierung der Widgets
 +
    JLabel lab = new JLabel("Name: ");
 +
    JTextField tf = new JTextField("", 20);
 +
    JButton but = new JButton("Ok");
 +
 +
    // Konstruktor
 +
    public GBO() {
 +
        super("Fenster");
 +
        pan.add(lab);
 +
        pan.add(tf);
 +
        pan.add(but);
 +
 +
        this.setContentPane(pan);
 +
        this.pack();
 +
        this.setVisible(true);
 +
 +
        // Klick auf 'x' beendet Fenster und Programmausführung
 +
        setDefaultCloseOperation(EXIT_ON_CLOSE);
 +
    }
 +
 +
    public static void main(String[] args) {
 +
        // Instanziierung des Fensters
 +
        new GBO();
 +
    }
 +
 +
}
 +
</nowiki>
 +
 +
----
  
 
== Netbeans GUI Builder ==
 
== Netbeans GUI Builder ==
Zeile 82: Zeile 134:
 
* [https://de.wikibooks.org/wiki/Java_Standard:_Grafische_Oberfl%C3%A4chen_mit_Swing:_Top_Level_Container:_javax_swing_JFrame Wikibooks: Java Standard: Grafische Oberflächen mit Swing: Top Level Container: javax swing JFrame]
 
* [https://de.wikibooks.org/wiki/Java_Standard:_Grafische_Oberfl%C3%A4chen_mit_Swing:_Top_Level_Container:_javax_swing_JFrame Wikibooks: Java Standard: Grafische Oberflächen mit Swing: Top Level Container: javax swing JFrame]
  
 +
* https://www.java-tutorial.org/swing.html
  
 +
* https://www.java-tutorial.org/joptionpane.html
  
 
+
* http://www.willemer.de/informatik/java/swing.htm
 
 
 
 
  
  

Aktuelle Version vom 21. Februar 2021, 23:24 Uhr

Seitenübersicht
Zur Seite "Java"
Zur Seite "Java: JavaFX"
Zur Seite "IntelliJ IDEA"
Zur Seite "Eclipse"
Zur Seite "Netbeans"
Zur Seite "Java: Beispiele"
Zur Seite "Kotlin"


Allgemeines

Swing ist ein GUI-Toolkit für die Programmiersprache Java von Sun Microsystems. Seit Java-Version 1.2 (1998) ist es Bestandteil der Java-Runtime. Swing gehört zu den Java Foundation Classes (JFC), die eine Sammlung von Bibliotheken zur Programmierung von grafischen Benutzerschnittstellen bereitstellen. Zu diesen Bibliotheken gehören Java 2D, die Java Accessibility API (JAAPI), das Drag-and-Drop-API und das Abstract Window Toolkit (AWT). Swing baut auf dem älteren AWT auf und ist mit den anderen APIs verwoben.[1]


Grundgerüst

Beispiel: Fenster mit Label, Textfeld und Button

package gbo;

import javax.swing.*;

/**
 *
 * @author itse
 */

// Elternklasse JFrame
public class GBO extends JFrame {

    // Initialisierung des Containers
    JPanel pan = new JPanel();

    // Initialisierung der Widgets
    JLabel lab = new JLabel("Name: ");
    JTextField tf = new JTextField("", 20);
    JButton but = new JButton("Ok");

    // Konstruktor
    public GBO() {
        super("Fenster");
        pan.add(lab);
        pan.add(tf);
        pan.add(but);

        this.setContentPane(pan);
        this.pack();
        this.setVisible(true);

        // Klick auf 'x' beendet Fenster und Programmausführung
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        // Instanziierung des Fensters
        new GBO();
    }

}


Netbeans GUI Builder

Der GUI Builder der Entwicklungsumgebung Netbeans ist ein Tool, mit dem sich eine Anwendung grafisch entwickeln lässt. Dazu muss das JFrame-Formular in das Java-Projekt eingebunden werden:

> New > (Swing GUI Forms >) JFrame Form


Netbeans_GUI_Builder


Tipps und Tricks

Frame zentrieren

import java.awt.*;

/**
 * Utility-Klasse für grafische Oberflächen.
 * 
 * @author fmk
 */
public class SwingTools {

    private SwingTools() {
    }

    /**
     * Zentriert den referenzierten Frame auf dem Bildschirm.
     * 
     * @param frame 
     */
    public static void centerFrame(Window frame) {
        Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
        int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
        frame.setLocation(x, y);
    }

    public static Point getCenterOnScreen(int screen, Dimension dimension) {
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        GraphicsDevice gd = gs[screen];
        GraphicsConfiguration[] gc = gd.getConfigurations();
        Rectangle screenBounds = gc[0].getBounds();

        Point pos = new Point();
        pos.x = screenBounds.x + (screenBounds.width / 2) - (dimension.width / 2);
        pos.y = screenBounds.y + (screenBounds.height / 2) - (dimension.height / 2);

        return pos;
    }

    public static void centerOnScreen(int screen, Window window) {
        window.setLocation(SwingTools.getCenterOnScreen(screen, window.getSize()));
    }
}


[Dank an fmk, javafish.de]

In den Konstruktor der Hauptklasse fügt man folgende Zeile ein:

SwingTools.centerOnScreen(0, this);

Quellen



| |