Suche…


Bemerkungen

Beenden der Anwendung beim Schließen des Fensters

Es ist leicht zu vergessen, die Anwendung zu beenden, wenn das Fenster geschlossen wird. Denken Sie daran, die folgende Zeile hinzuzufügen.

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

Leeres Fenster erstellen (JFrame)

JFrame erstellen

Ein Fenster zu erstellen ist einfach. Sie müssen nur einen JFrame erstellen.

JFrame frame = new JFrame();

Das Fenster betiteln

Sie können Ihrem Fenster einen Titel geben. Sie können dies tun, indem Sie beim Erstellen des JFrame einen String JFrame oder frame.setTitle(String title) aufrufen.

JFrame frame = new JFrame("Super Awesome Window Title!");
//OR
frame.setTitle("Super Awesome Window Title!");

Fenstergröße einstellen

Das Fenster ist so klein wie möglich, wenn es erstellt wurde. Um es zu vergrößern, können Sie seine Größe explizit einstellen:

frame.setSize(512, 256);

Oder Sie können die Frame-Größe selbst anhand der pack() -Methode basierend auf der Größe des Inhalts pack() .

frame.pack();

Die setSize() und pack() sich gegenseitig aus, verwenden Sie also die eine oder die andere.

Was ist bei Window Close zu tun?

Beachten Sie, dass die Anwendung nicht beendet wird, wenn das Fenster geschlossen wurde. Sie können die Anwendung beenden, nachdem das Fenster geschlossen wurde, indem Sie den JFrame dazu auffordern.

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

Alternativ können Sie dem Fenster mitteilen, dass es beim Schließen etwas anderes tun soll.

WindowConstants.DISPOSE_ON_CLOSE //Get rid of the window
WindowConstants.EXIT_ON_CLOSE //Quit the application
WindowConstants.DO_NOTHING_ON_CLOSE //Don't even close the window
WindowConstants.HIDE_ON_CLOSE //Hides the window - This is the default action

Erstellen eines Inhaltsbereichs

Ein optionaler Schritt ist das Erstellen eines Inhaltsbereichs für Ihr Fenster. Dies ist nicht erforderlich, aber wenn Sie dies möchten, erstellen Sie ein JPanel und rufen Sie frame.setContentPane(Component component) .

JPanel pane = new JPanel();
frame.setContentPane(pane);

Das Fenster anzeigen

Nach dem Erstellen möchten Sie Ihre Komponenten erstellen und dann das Fenster anzeigen. Die Anzeige des Fensters erfolgt als solches.

frame.setVisible(true);

Beispiel

Für diejenigen von Ihnen, die gerne kopieren und einfügen, hier ein Beispielcode.

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane

frame.setVisible(true); //Show the window

Beispielausgabe

Komponenten hinzufügen

Eine Komponente ist eine Art Benutzeroberflächenelement, z. B. eine Schaltfläche oder ein Textfeld.

Eine Komponente erstellen

Das Erstellen von Komponenten ist nahezu identisch mit dem Erstellen eines Fensters. Anstatt einen JFrame erstellen, erstellen Sie diese Komponente. Um beispielsweise eine JButton zu erstellen, führen Sie folgende JButton aus.

JButton button = new JButton();

Viele Komponenten können beim Erstellen Parameter übergeben werden. Beispielsweise kann einer Schaltfläche Text angezeigt werden, der angezeigt werden soll.

JButton button = new JButton("Super Amazing Button!");

Wenn Sie keine Schaltfläche erstellen möchten, finden Sie in einem anderen Beispiel auf dieser Seite eine Liste mit häufig verwendeten Komponenten.

Die Parameter, die an sie übergeben werden können, variieren von Komponente zu Komponente. Eine gute Möglichkeit zu überprüfen, was sie akzeptieren können, ist, sich die Parameter in Ihrer IDE anzusehen (falls Sie eines verwenden). Die Standardverknüpfungen sind unten aufgeführt.

  • IntelliJ IDEA - Windows / Linux: CTRL + P
  • IntelliJ IDEA - OS X / macOS: CMD + P
  • Eclipse: CTRL + SHIFT + Space
  • NetBeans: CTRL + P

Beispiel für das Anzeigen von Methodenparameterinformationen in IntelliJ IDEA

Anzeige der Komponente

Nachdem eine Komponente erstellt wurde, legen Sie normalerweise deren Parameter fest. Danach müssen Sie es irgendwo JFrame , beispielsweise in Ihrem JFrame oder in Ihrem Inhaltsbereich, falls Sie einen erstellt haben.

frame.add(button); //Add to your JFrame
//OR
pane.add(button); //Add to your content pane
//OR
myComponent.add(button); //Add to whatever

Beispiel

Hier ein Beispiel zum Erstellen eines Fensters, Festlegen eines Inhaltsbereichs und Hinzufügen einer Schaltfläche zum Fenster.

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane

JButton button = new JButton("Super Amazing Button!"); //Create the button
pane.add(button); //Add the button to the content pane

frame.setVisible(true); //Show the window

Beispielausgabe

Parameter für Komponenten einstellen

Komponenten haben verschiedene Parameter, die für sie eingestellt werden können. Sie sind von Komponente zu Komponente unterschiedlich. Um zu ermitteln, welche Parameter für Komponenten festgelegt werden können, sollten Sie mit der Eingabe von componentName.set und die automatische Vervollständigung Ihrer IDE (wenn Sie eine IDE verwenden) vorschlagen. Die Standardverknüpfung in vielen IDEs lautet CTRL + Space Leertaste, wenn sie nicht automatisch angezeigt wird.

Autovervollständigung in IntelliJ IDEA

Gemeinsame Parameter, die von allen Komponenten gemeinsam genutzt werden

Beschreibung Methode
Legt die kleinste Größe für die Komponente fest (nur wenn der Layoutmanager die minimumSize-Eigenschaft berücksichtigt). setMinimumSize(Dimension minimumSize)
Legt die größte Größe der Komponente fest (nur wenn der Layoutmanager die maximumSize-Eigenschaft berücksichtigt). setMaximumSize(Dimension maximumSize)
Legt die perferred-Größe der Komponente fest (nur, wenn der Layout-Manager die Eigenschaft PreferredSize berücksichtigt). setPreferredSize(Dimension preferredSize)
Zeigt oder verbirgt die Komponente setVisible(boolean aFlag)
Legt fest, ob die Komponente auf Benutzereingaben reagieren soll setEnabled(boolean enabled)
Legt die Schriftart für den Text fest setFont(Font font)
Legt den Text der QuickInfo fest setToolTipText(String text)
Legt die Hintergrundfarbe der Komponente fest setBackground(Color bg)
Legt die Vordergrundfarbe (Schriftfarbe) der Komponente fest setForeground(Color bg)

Gemeinsame Parameter in anderen Komponenten

Gemeinsame Komponenten Beschreibung Methode
JLabel , JButton , JCheckBox , JRadioButton , JToggleButton , JMenu , JMenuItem , JTextArea , JTextField Legt den angezeigten Text fest setText(String text)
JProgressBar , JScrollBar , JSlider , JSpinner Legt einen numerischen Wert zwischen den minimalen und maximalen Werten der Komponente fest setValue(int n)
JProgressBar , JScrollBar , JSlider , JSpinner Legt den kleinsten möglichen Wert fest, den die value Eigenschaft annehmen kann setMinimum(int n)
JProgressBar , JScrollBar , JSlider , JSpinner Legt den größtmöglichen Wert fest, den die value Eigenschaft annehmen kann setMaxmimum(int n)
JCheckBox , JToggleBox Legt fest, ob der Wert wahr oder falsch ist (z. B .: Soll ein Kontrollkästchen aktiviert werden?) setSelected(boolean b)

Gemeinsame Komponenten

Beschreibung Klasse
Taste JButton
Ankreuzfeld JCheckBox
Dropdown-Menü / Kombinationsfeld JComboBox
Etikette JLabel
Liste JList
Menüleiste JMenuBar
Menü in einer Menüleiste JMenu
Element in einem Menü JMenuItem
Panel JPanel
Fortschrittsanzeige JProgressBar
Radio knopf JRadioButton
Scrollleiste JScrollBar
Schieberegler JSlider
Spinner / Zahlenauswahl JSpinner
Tabelle JTable
Baum JTree
Textbereich / mehrzeiliges Textfeld JTextArea
Textfeld JTextField
Werkzeugleiste JToolBar

Interaktive Benutzeroberflächen erstellen

Einen Knopf dort zu haben ist alles gut und gut, aber was ist der Punkt, wenn das Klicken nichts macht? ActionListener werden verwendet, um Ihrer Schaltfläche oder anderen Komponente mitzuteilen, dass sie bei Aktivierung etwas tut.

Das Hinzufügen von ActionListener erfolgt als solches.

buttonA.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        //Code goes here...
        System.out.println("You clicked the button!");
    }
});

Oder, wenn Sie Java 8 oder höher verwenden ...

buttonA.addActionListener(e -> {
    //Code
    System.out.println("You clicked the button!");
});

Beispiel (Java 8 und höher)

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create a pane to house all content
frame.setContentPane(pane);

JButton button = new JButton("Click me - I know you want to.");
button.addActionListener(e -> {
    //Code goes here
    System.out.println("You clicked me! Ouch.");
});
pane.add(buttonA);

frame.setVisible(true); //Show the window

Komponentenlayout organisieren

Das Hinzufügen von Komponenten nacheinander führt zu einer schwer zu verwendenden Benutzeroberfläche, da sich alle Komponenten irgendwo befinden . Die Komponenten sind von oben nach unten angeordnet, wobei jede Komponente in einer separaten "Reihe" angeordnet ist.

Um dem abzuhelfen und Ihnen als Entwickler die Möglichkeit zu geben, Komponenten einfach zu gestalten, bietet Swing LayoutManager .

Diese LayoutManager werden ausführlicher in Einführung in Layout Manager sowie in den separaten Layout Manager-Themen behandelt:



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow