Comment lier une classe JFrame avec un autre JPanel en utilisant JButton

SusuLeChercheur

J'ai un projet à l'école pour construire une application. Comme je suis assez nouveau dans le monde Java, j'ai du mal.

J'ai décidé de travailler dans NetBeans et d'essayer de créer l'application de manière dynamique. J'ai créé une JFrameclasse dynamiquement dans Source Packages et j'y ai ajouté quelques boutons (dynamiquement).

Ensuite, j'ai créé une autre JPanelclasse que je veux lier à la JFrameclasse à l'aide d'un Jbutton en JFrameclasse. Cependant, je ne sais pas comment JFrameest appelé dans la JFrameclasse, ce qui signifie que je ne peux rien y ajouter ni en supprimer, uniquement dynamiquement.

J'ai essayé de créer une nouvelle instance appelée JFramemais elle écrirait simplement qu'elle ne peut pas trouver le symbole.

J'ai aussi essayé d'appeler le JFrame( Frame.add(nr)) mais il n'a écrit que

non-static method add cannot be referenced from a static context 

public class Frame extends javax.swing.JFrame {

    public Frame()  {
        initComponents();
    }

    private void createRecipeActionPerformed(java.awt.event.ActionEvent evt) {  

        intro.show(false);
        NewRecipe nr = new NewRecipe(); 
        Frame.add(nr); 
        nr.show(true);
    } 

Mon résultat attendu est: Lorsque l' JButtonon clique dans la JFramela JPanelapparaîtrait.

Prasad Karunagoda

Il semble que vous soyez novice en Java et en swing. Donc, je vous donne le code ci-dessous comme exemple pour commencer. Je pense qu'il fait ce que tu veux. Alors, jouez un peu avec et essayez de comprendre ce qui se passe.

Vous devrez peut-être jouer avec quelques exemples d'interfaces utilisateur supplémentaires pour comprendre le "modèle" de Java et de swing.

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Frame extends JFrame {

  private JButton button;

  public Frame() {
    initComponents();
  }

  private void initComponents() {
    button = new JButton("Add New Recipe Panel");
    button.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        Frame.this.getContentPane().add(new NewRecipe(), BorderLayout.CENTER);
        Frame.this.getContentPane().revalidate();
      }
    });
    this.getContentPane().add(button, BorderLayout.NORTH);
  }

  public static void main(String[] args) {
    Frame frame = new Frame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(200, 100, 400, 300);
    frame.setVisible(true);
  }

  class NewRecipe extends JPanel {

    NewRecipe() {
      this.add(new JLabel("New Recipe"));
    }
  }
}

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Comment désactiver ou activer le balayage de Viewpager dans Android

  2. 2

    Créer une table externe Hive à partir de fichiers de parquet partitionnés dans Azure HDInsights

  3. 3

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  4. 4

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  5. 5

    Concaténer des variables dans ansible

  6. 6

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  7. 7

    Stop jQuery execution after one time execution

  8. 8

    Filtrer les données en fonction des conditions d'une trame de données

  9. 9

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  10. 10

    obtenir le nombre de marqueur affiché sur la carte

  11. 11

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  12. 12

    Comment utiliser le stockage local et le supprimer lorsqu'il n'est pas nécessaire

  13. 13

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

  14. 14

    Comment envoyer plusieurs variables de la lame au contrôleur

  15. 15

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  16. 16

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  17. 17

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  18. 18

    Générer une variable binaire avec une corrélation prédéfinie avec une variable déjà existante

  19. 19

    la mise en place Spring dans Eclipse - Échec d'initialisation de contexte

  20. 20

    comment afficher un bouton au-dessus d'un autre élément ?

  21. 21

    Uncaught TypeError: map n'est pas une fonction dans Reactjs avec Firebase

chaudétiquette

Archive