Fond de panneau JPanel personnalisé
1. Préface
1. Le nom complet de l'interface graphique est l'interface utilisateur graphique, qui est l'interface utilisateur graphique. L'interface graphique de Java est largement utilisée dans nos vies et est également très courante. De nombreuses applications utilisent cette interface graphique pour programmer et concevoir, comme cliquer sur l'icône QQ pour faire apparaître le formulaire de connexion correspondant.
Généralement, l'interaction entre les programmes et les utilisateurs est basée sur l'interface en cours d'exécution du programme correspondant.
2. Le panneau JPanel est une classe de conteneur de panneau sous Swing. Ce panneau prend en charge la nidification, peut définir des méthodes de mise en page et définir différents gestionnaires de mise en page pour ajouter d'autres contrôles tels que les boutons JButton, les zones de texte JTextfield, etc. pour concevoir et améliorer un formulaire d'interface de programme.
Il est loin d'être suffisant de prendre en charge SetBackground () en tant que panneau de dessin. Ici, nous implémentons la personnalisation pour définir l'arrière-plan de l'image pour JPanel.
2. Outils de plate-forme
1.Myeclipse
Démontrez l'utilisation de myeclipse2014 ici
D'autres plates-formes qui prennent en charge Java AWT + Swing sont également disponibles
3. Affichage d'image
1. Différents effets de traitement de JPanel sous la même forme
(1) Créez d'abord une forme non modifiée. L'effet d'interface JPanel par défaut général est le suivant:
(2) Réglage simple des effets de couleur d'arrière-plan:
(3) Personnalisé l'effet de forme sous JPanel après le traitement:
2. Implémentation du code
Personnalisez le traitement d'arrière-plan JPanel, l'image est bg.png, et elle est dans le même chemin que la classe de test. Veuillez utiliser le chemin relatif lorsque vous utilisez l'image.
import java.awt.graphics; import javax.swing.imageicon; import javax.swing.jframe; import javax.swing.jpanel; classe publique Guitest {private static jframe jframe; // déclare un formulaire privé jpanel jpanel; // Déclare un artboard public Guitest () {// Méthode de construction jFrame = new JFrame (); init (); } private void init () {jframe.settitle ("test"); jpanel = new JPanel () {// Le code de clé est de réécriture une méthode de peinture @Override Protected void PaintComponent (Graphics g) {super.paintComponent (g); ImageIcon img = new ImageIcon (guitest.class.getResource ("bg.png")); / ** * bg.png est remplacé par sa propre image * Le chemin relatif utilisé ici, bg.png est dans le même chemin que la classe de test * Cependant, il est recommandé d'utiliser des chemins relatifs pour éviter d'utiliser des chemins absolus * / img.painticon (this, g, 0, 0); }}; jpanel.setOpaque (true); JFrame.SetBounds (200, 200, 500, 400); // Définissez la position d'affichage de 200 pixels sur la gauche et les 200 pixels supérieurs et la taille de l'écran est de 500 * 400 jframe.add (jpanel); // Ajouter le tableau artistique au formulaire jFrame.setVisible (true); // Définissez l'interface d'affichage} public static void main (String [] args) {new Guitest (); // instancier l'objet}} 4. Développer le gestionnaire de mise en page
Voici un formulaire de connexion simple:
Un formulaire de connexion simple implémenté en fonction d'un arrière-plan JPanel personnalisé, définissant la disposition GridBagLayout, en ajoutant des boîtes de texte de bouton et d'autres contrôles de base.
(1) Le code est le suivant:
import java.awt.graphics; Importer java.awt.gridbagConstraints; import java.awt.gridbaglayout; Importer java.awt.insets; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jpasswordfield; import javax.swing.jtextfield; classe publique guit {// Declare Form, Panel and Control Private Static JFrame JFrame; JLABEL privé Jlabel, JLabel1; Gridbaglayout privébag; Contraintes privées de GridBagConstraints; privé jTextfield JTfield1; JPASSWORDFIELD PRIVÉ JPFIELD1; Le soldat JBUTTON JBUTTON1, JBUTTON2, JBUTTON3; Jpanel privé Jpanel; public guit () {jFrame = new JFrame (); jLabel = new JLabel (); jLabel1 = new JLabel (); jtfield1 = new JTextField (); jpfield1 = new jpasswordfield (); gridbag = new gridbaglayout (); jbutton1 = new Jbutton (); jbutton2 = new JButton (); jbutton3 = new JButton (); init (); } / ** * init () initialiser et afficher l'interface * / private void init () {jframe.settitle ("login"); / ** * Définir JPanel Background * / jpanel = new JPanel () {@Override Protected void PaintComponent (Graphics G) {super.paintComponent (g); ImageIcon img = new ImageIcon (guitest.class.getResource ("ddmbg.jpg")); img.painticon (ceci, g, 0, 0); }}; // Initialisez le texte de JLabel, JButton JLabel.SeTText ("Username:"); jLabel1.seTText ("Mot de passe:"); JBUTTON1.SETTEXT ("Login"); JBUTTON2.SETTEXT ("Exit"); JBUTTON3.SETTEXT ("Signaler"); // Définissez la position d'affichage et la taille de l'écran 500 * 400 JFrame.SetBounds (450, 240, 400, 240); // jpanel utilise GridBagLayout Layout Manager jpanel.setOpaque (false); jpanel.setLayout (gridbag); // Initialisez l'étiquette du nom d'utilisateur et ajoutez le contrôle aux contraintes Artboard = GetGridBagConstraints (0,0,1,1,0,0, gridbagConstraints.Center, gridbagConstraints.None, nouveaux encarts (10,0,10,0), 0,0); gridbag.setConstraints (JLabel, contraintes); jpanel.add (JLabel); // Initialisez la zone de texte du nom d'utilisateur et ajoutez le composant aux contraintes artboard = getGridBagConstraints (1,0,1,1,0,0, gridbagConstraints.Center, gridbagConstraints.None, nouveaux encarts (10,0,10,0), 100,0); gridbag.setConstraints (jtfield1, contraintes); jpanel.add (jtfield1); // Initialiser les contraintes d'étiquette de mot de passe = getGridBagConstraints (0,1,1,1,0,0, gridbagConstraints.Center, gridbagConstraints.none, nouveaux encarts (10,0,10,0), 0,0); gridbag.setConstraints (JLabel1, contraintes); jpanel.add (JLabel1); // Initialisez les contraintes de zone de texte de mot de passe = getGridBagConstraints (1,1,1,1,0,0, gridbagConstraints.Center, gridbagConstraints.none, nouveaux encarts (10,0,10,0), 100,0); gridbag.setConstraints (jpfield1, contraintes); jpanel.add (jpfield1); // Initialisez le bouton d'enregistrement et ajoutez le contrôle aux contraintes artboard = GetGridBagConstraints (0,2,1,1,0,0, gridbagConstraints.Center, gridbagConstraints.None, nouveaux encarts (10,0,10,0), 0,0); gridbag.setConstraints (jbutton3, contraintes); jpanel.add (jbutton3); // Initialisez les contraintes du bouton de connexion = getGridBagConstraints (1,2,1,1,0,0, gridbagConstraints.Center, gridbagConstraints.none, nouveaux encarts (10,0,10,0), 0,0); gridbag.setConstraints (jbutton1, contraintes); jpanel.add (jbutton1); // Initialiser les contraintes de bouton de sortie = getGridBagConstraints (2,2,1,1,0,0, gridbagConstraints.Center, gridbagConstraints.none, nouveaux encarts (10,0,10,0), 0,0); gridbag.setConstraints (jbutton2, contraintes); jpanel.add (jbutton2); // Ajouter Artboard pour former jFrame.add (jpanel); // L'initialisation du formulaire est terminée} GridbagCagonstraints statiques privés GetGridBagConstraints (int gridx, int gridy, int gridwidth, int gridheight, double poids, double poids, int anchor, int remplissage, inset int ipadx, int iPady) {return new GridbagConstraints (gridx poids, ancre, remplissage, encarts, iPadx, iPady); } public static void main (String [] args) {new guit (); jFrame.setVisible (true); }}où ddmbg est le nom de l'image
(2) L'effet est illustré sur la figure:
La disposition est le fondement et est également très importante dans la conception de l'interface graphique.
Pour maîtriser et maîtriser les trois mises en page et d'autres gestionnaires de mise en page, vous devez vous entraîner par vous-même.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.