[JAVA] [Swing] Über die JFrame-Klasse

(JFrame-Klassenhierarchie)

java.lang.Object →java.awt.Component →→java.awt.Container →→→java.awt.Window →→→→java.awt.Frame →→→→→javax.swing.JFrame

(JFrame-Klassenkonstruktor)

JFrame()
//Erstellen Sie einen neuen Frame, dessen Ausgangszustand unsichtbar ist
JFrame(GraphicsConfiguration gc)
//Erstellen Sie einen Rahmen mit der auf dem Bildschirmgerät angegebenen Grafikkonfiguration und einem leeren Titel
JFrame(String title)
//Erstellen Sie einen neuen Rahmen, der mit dem angegebenen Titel zunächst unsichtbar ist
JFrame(String title, GraphicsConfiguration gc)
//Erstellt einen JFrame mit dem angegebenen Titel und der angegebenen Grafikkonfiguration für das Bildschirmgerät.

→ Hauptsächlich werden der erste und der dritte Konstruktor verwendet → Anwendungsbeispiel

import javax.swing.JFrame;

class Sample{
  public static void main(String args[]){
    JFrame frame = new JFrame("MyTitle");
  }
}

(Methode)

public void setVisible(boolean b)
//Frame anzeigen, wenn das Argument wahr ist
public void setTitle(String title)
//Legen Sie den Titel als Argument fest
public void setSize(int width, int height)
//Definieren Sie Rahmenbreite und -höhe mit Argumenten
public void setLocation(int x, int y)
//Rahmenposition mit Argument definieren
public void setLocationRelativeTo(null);
//Die Rahmenposition wird mit dem Argument null zentriert
public void setBounds(int x, int y, int width, int height)
//Definieren Sie die Rahmenposition und -breite mit Argumenten
public void setDefaultCloseOperation(int operation)
//JFrame als Argument.EXIT_ON_SCHLIESSEN und x-Taste, um den Frame zu beenden

(Unterklasse, die die JFrame-Klasse erbt)

→ Wenn Sie dem Frame eine eigene Methode hinzufügen möchten, definieren Sie eine Unterklasse, die die JFrame-Klasse erbt. → Die Initialisierungsverarbeitung wie Frame-Größe und Position wird im Konstruktor der Unterklasse ausgeführt.

import javax.swing.JFrame;

//JFrame erben
class JSample5_1 extends JFrame{
  public static void main(String args[]){
    JSample5_1 frame = new JSample5_1("MyTitle");
    frame.setVisible(true);
  }

//Konstrukteur
  JSample5_1(String title){
    setTitle(title);
    setBounds(100, 100, 600, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

(Scheibenerfassung und Komponenten)

→ Hinzufügen einer Komponente → Holen Sie sich einen Bereich aus dem Rahmen und fügen Sie dem Bereich eine Komponente hinzu → Was im Rahmen für andere Zwecke als im Bereich definiert ist

(ContentPane) → Verwenden Sie die getContentPane-Methode der JFrame-Klasse, um ContentPane abzurufen

import javax.swing.JFrame;
import java.awt.Container;

class Sample extends JFrame{
  public static void main(String args[]){
  }

  Sample(String title){
    Container contentPane = getContentPane();//Inhaltsbereich abrufen
  }
}

→ Komponente zum ContentPane hinzufügen → Verwenden Sie die in der Container-Klasse definierte add-Methode

public void add(Component comp, Object constraints)
//Das erste Argument ist das Komponentenobjekt
//Das zweite Argument ist die hinzuzufügende Position

→ Layout Manager: Was tun mit der Komponente? → Es gibt mehrere Arten von Layout-Managern

//Layout-Manager, der die Position im Norden, Süden, Osten und Westen angibt
BorderLayout.NORTH
BorderLayout.SOUTH
BorderLayout.EAST
BorderLayout.WEST
BorderLayout.CENTER

(Schaltfläche Hinzufügen)

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.BorderLayout;

class Sample extends JFrame{
	public static void main(String[] args){
	JFrame frame = new JFrame();
    	JButton btn = new JButton("aaaa");

	Container contentPane = frame.getContentPane();
	contentPane.add(btn, BorderLayout.NORTH);
	
	frame.setBounds(100, 100, 600, 400);
	frame.setTitle("MyTitle");
    	frame.setVisible(true);
	}

}

(Ausgabeergebnis) image.png

(Auslassung des Erwerbs des Inhaltsbereichs)

→ Wenn es sich um eine neue Umgebung handelt, wird der Inhaltsbereich automatisch erfasst, sodass er weggelassen werden kann.

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.BorderLayout;

class Sample extends JFrame{
	public static void main(String[] args){
	JFrame frame = new JFrame();
    	JButton btn = new JButton("aaaa");

	frame.add(btn, BorderLayout.NORTH);
	
	frame.setBounds(100, 100, 600, 400);
	frame.setTitle("MyTitle");
    	frame.setVisible(true);
	}

}

(Ausgabeergebnis) image.png

(Layout Manager Einstellungen)

→ Um den Layout-Manager im Rahmen festzulegen, rufen Sie das Inhaltsfenster auf und legen Sie es für das Fenster fest.

public void setLayout​(LayoutManager mgr)
//Richten Sie den Layout-Manager ein
//Anwendungsbeispiel
import javax.swing.JFrame;
import java.awt.FlowLayout;

class Sample extends JFrame{
  public static void main(String args[]){
  }

  Sample(String title){
    Container contentPane = getContentPane();
    contentPane.setLayout(new FlowLayout());
  }
}

public void setLayout​(LayoutManager manager)
//Richten Sie den Layout-Manager ein
//Anwendungsbeispiel
import javax.swing.JFrame;
import java.awt.FlowLayout;

class Sample extends JFrame{
  public static void main(String args[]){
  }

  Sample(String title){
    setLayout(new FlowLayout());
  }
}
(Hintergrundfarbe)
public void setBackground​(Color bg)
//Verwenden Sie das Argument der Color-Klasse
//Beispiel:「Color.GREEN」
(Symbolbild)
public void setIconImage(Image image)
//Instanziieren Sie die Imagination-Klasse und übergeben Sie den Bildpfad als Argument

Recommended Posts

[Swing] Über die JFrame-Klasse
Informationen zur Klassenvererbung.
Über die Java-Klasse
Informationen zur StringBuilder-Klasse
Über die Klassenteilung (Java)
Informationen zur Java StringBuilder-Klasse
[Java] Über Singleton Class
Informationen zur Java String-Klasse
Informationen zum Sortieren der Klasse java.util.Arrays
Über die abstrakte Klasse von Java
Informationen zu Java Class Loader-Typen
Java-Klasse Variable Klassenmethode
Ein Murmeln über die Utility-Klasse
Über =