[JAVA] [Swing] À propos de la classe JFrame

(Hiérarchie des classes JFrame)

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

(Constructeur de classe JFrame)

JFrame()
//Construire un nouveau cadre dont l'état initial est invisible
JFrame(GraphicsConfiguration gc)
//Créez un cadre avec la configuration graphique spécifiée sur le périphérique d'écran et un titre vide
JFrame(String title)
//Créer un nouveau cadre qui est initialement invisible à l'aide du titre spécifié
JFrame(String title, GraphicsConfiguration gc)
//Crée un JFrame avec le titre spécifié et la GraphicsConfiguration spécifiée pour le périphérique d'écran.

→ Les premier et troisième constructeurs sont principalement utilisés → Exemple d'utilisation

import javax.swing.JFrame;

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

(Méthode)

public void setVisible(boolean b)
//Afficher le cadre si l'argument est vrai
public void setTitle(String title)
//Définir le titre comme argument
public void setSize(int width, int height)
//Définir la largeur et la hauteur du cadre avec des arguments
public void setLocation(int x, int y)
//Définir la position du cadre avec l'argument
public void setLocationRelativeTo(null);
//La position du cadre est centrée avec un argument nul
public void setBounds(int x, int y, int width, int height)
//Définir la position du cadre et la hauteur de la largeur avec des arguments
public void setDefaultCloseOperation(int operation)
//JFrame comme argument.EXIT_ON_CLOSE et x pour terminer le cadre

(Sous-classe qui hérite de la classe JFrame)

→ Si vous souhaitez ajouter votre propre méthode au cadre, définissez une sous-classe qui hérite de la classe JFrame. → Le traitement d'initialisation tel que la taille et la position de la trame est effectué dans le constructeur de la sous-classe.

import javax.swing.JFrame;

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

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

(Acquisition de panneaux et composants)

→ Pour ajouter un composant → Récupérez un volet du cadre et ajoutez un composant au volet → Ce qui est défini dans le cadre à des fins différentes du volet

(ContentPane) → Utilisez la méthode getContentPane de la classe JFrame pour obtenir ContentPane

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

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

  Sample(String title){
    Container contentPane = getContentPane();//Obtenir le volet de contenu
  }
}

→ Ajouter un composant à ContentPane → Utilisez la méthode add définie dans la classe Container

public void add(Component comp, Object constraints)
//Le premier argument est l'objet composant
//Le deuxième argument est la position à ajouter

→ Layout Manager: que faire avec le composant → Il existe plusieurs types de gestionnaires de mise en page

//Gestionnaire de mise en page qui spécifie la position au nord, au sud, à l'est et à l'ouest
BorderLayout.NORTH
BorderLayout.SOUTH
BorderLayout.EAST
BorderLayout.WEST
BorderLayout.CENTER

(Bouton Ajouter)

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);
	}

}

(Résultat de sortie) image.png

(Omission d'acquisition de Content Pane)

→ S'il s'agit d'un nouvel environnement, le volet de contenu sera acquis automatiquement et pourra donc être omis.

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);
	}

}

(Résultat de sortie) image.png

(Paramètres du gestionnaire de mise en page)

→ Pour définir le gestionnaire de mise en page dans le cadre, récupérez le ContentPane et définissez-le pour le volet.

public void setLayout​(LayoutManager mgr)
//Configurer le gestionnaire de mise en page
//Exemple d'utilisation
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)
//Configurer le gestionnaire de mise en page
//Exemple d'utilisation
import javax.swing.JFrame;
import java.awt.FlowLayout;

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

  Sample(String title){
    setLayout(new FlowLayout());
  }
}
(Couleur de l'arrière plan)
public void setBackground​(Color bg)
//Utilisez l'argument de la classe Color
//Exemple:「Color.GREEN」
(Image d'icône)
public void setIconImage(Image image)
//Instanciez la classe Imagination et passez le chemin de l'image comme argument

Recommended Posts

[Swing] À propos de la classe JFrame
À propos de l'héritage de classe.
À propos de la classe Java
À propos de la classe StringBuilder
À propos de la division de classe (Java)
À propos de la classe Java StringBuilder
[Java] À propos de la classe Singleton
À propos de la classe Java String
A propos du tri de la classe java.util.Arrays
À propos de la classe abstraite de Java
À propos des types de chargeur de classe Java
Méthode de classe variable de classe Java
Un murmure sur la classe utilitaire
À propos =