Java: Swing: Unterschied zwischen den Versionen

Aus Flinkwiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „<div align="right"><big>'''[https://flinkwiki.de/index.php?title=Kategorie:Alle_Seiten Seitenübersicht]'''</big></div> <div align="right">'''Java|Zur Seite…“)
 
 
(13 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">'''[[Java: Beispiele|Zur Seite "Java: Beispiele"]]'''</div>
 +
<div align="right">'''[[Kotlin|Zur Seite "Kotlin"]]'''</div>
  
  
 
== Allgemeines ==
 
== Allgemeines ==
  
Die Infos auf dieser Seite beziehen sich auf den Einsatz von Netbeans in der Java-Programmierung.
+
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.[https://de.wikipedia.org/wiki/Swing_(Java)]
  
 +
----
 +
== Grundgerüst ==
  
----
+
Beispiel: Fenster mit Label, Textfeld und Button
 +
<nowiki>
 +
package gbo;
  
 +
import javax.swing.*;
  
== Netbeans GUI Builder ==
+
/**
 +
*
 +
* @author itse
 +
*/
  
Aufruf einer Klasse über > ''New'' > ''(Swing GUI Forms >) JFrame Form''
+
// Elternklasse JFrame
 +
public class GBO extends JFrame {
  
----
+
    // Initialisierung des Containers
 +
    JPanel pan = new JPanel();
  
Abschalten der "vollqualifizierten Klassennamen":
+
    // Initialisierung der Widgets
 +
    JLabel lab = new JLabel("Name: ");
 +
    JTextField tf = new JTextField("", 20);
 +
    JButton but = new JButton("Ok");
  
'' > Tools > Options > Java > GUI Builder '' >
+
    // Konstruktor
 +
    public GBO() {
 +
        super("Fenster");
 +
        pan.add(lab);
 +
        pan.add(tf);
 +
        pan.add(but);
  
Dann bei ''Generate Fully Qualified Names of Classes'' den Haken wegnehmen.
+
        this.setContentPane(pan);
 +
        this.pack();
 +
        this.setVisible(true);
  
----
+
        // Klick auf 'x' beendet Fenster und Programmausführung
 +
        setDefaultCloseOperation(EXIT_ON_CLOSE);
 +
    }
  
Umbenennen der ''Swing Controls'' im Reiter ''Design'':
+
    public static void main(String[] args) {
 +
        // Instanziierung des Fensters
 +
        new GBO();
 +
    }
  
> ''Navigation'', <code>F2</code>
+
}
 +
</nowiki>
  
 
----
 
----
  
* [https://www.youtube.com/watch?v=60fdNF57X8U Creating a Simple Java Desktop Application using NetBeans GUI Builder]
+
== Netbeans GUI Builder ==
  
* [https://www.youtube.com/watch?v=0cZ91_DM_h0 Youtube: Java Gui erstellen in Netbeans (Taschenrechner)]
+
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#Netbeans_GUI_Builder | Netbeans_GUI_Builder]]
  
 
----
 
----
  
 
== Tipps und Tricks ==
 
== Tipps und Tricks ==
=== Skript aufräumen ===
+
=== Frame zentrieren ===
  
> Menü ''Source'' > ''Format''
+
<nowiki>
 +
import java.awt.*;
  
oder <code>Alt-Shift-F</code>
+
/**
 +
* Utility-Klasse für grafische Oberflächen.
 +
*
 +
* @author fmk
 +
*/
 +
public class SwingTools {
  
----
+
    private SwingTools() {
=== Getter und Setter generieren ===
+
    }
  
# Unterhalb der Instanzvariablen <code>Alt-Einfg</code> drücken.
+
    /**
# Es öffnet sich das Menü ''Generate''.
+
    * Zentriert den referenzierten Frame auf dem Bildschirm.
# ''Getter and Setter'' auswählen.
+
    *
 +
    * @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();
  
Alternativ:
+
        Point pos = new Point();
# Rechte Maustaste auf Variable
+
        pos.x = screenBounds.x + (screenBounds.width / 2) - (dimension.width / 2);
# ''Refactor''
+
        pos.y = screenBounds.y + (screenBounds.height / 2) - (dimension.height / 2);
# ''Encapsulate Fields
 
# Haken bei ''Create Getter'' bzw. ''Create Setter'',
 
# ggf. ''Javadoc: None''
 
# ''Refactor''
 
  
----
+
        return pos;
 +
    }
  
== Quellen ==
+
    public static void centerOnScreen(int screen, Window window) {
 +
        window.setLocation(SwingTools.getCenterOnScreen(screen, window.getSize()));
 +
    }
 +
}
  
 +
</nowiki>
 +
<small>[Dank an fmk, javafish.de]</small>
  
 +
In den Konstruktor der Hauptklasse fügt man folgende Zeile ein:
 +
SwingTools.centerOnScreen(0, this);
  
 +
----
  
 +
== Quellen ==
  
 +
* [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, 22: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



| |