Ouvrir une fenêtre interne en cliquant sur l'item d'un menu [Résolu]

Signaler
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
Bonjour, je suis débutant en java et je rame. J'ai créé une fenêtre avec un menu de base (Interface.java) mais je ne sais pas comment attribuer une action à l'item nouveau (dans fichier), pour ouvrir à l'intérieur de la fenêtre une seconde fenêtre (Nouveau1.java) ?
Voici mes 2 codes:

Interface.java

package isostasie;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import javax.swing.UIManager;
import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JLayeredPane;
import javax.swing.border.BevelBorder;
import java.awt.Toolkit;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import java.awt.Dimension;
import javax.swing.JMenuItem;
import java.awt.Component;
import javax.swing.JInternalFrame;

public class Interface extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Interface frame = new Interface();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Interface() {
setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Program Files (x86)\\eclipse\\workspace\\perso\\SPU.png"));
setTitle("SPU 1.0");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 1024, 630);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JMenuBar menuBar = new JMenuBar();
menuBar.setBounds(0, 0, 1008, 21);
contentPane.add(menuBar);

JMenu mnNewMenu = new JMenu(" Fichier");
menuBar.add(mnNewMenu);
mnNewMenu.setPreferredSize(new Dimension(84, 22));
mnNewMenu.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));

JMenuItem mntmNouveau = new JMenuItem("Nouveau");
mntmNouveau.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

}
});
mntmNouveau.setFont(new Font("Comic Sans MS", Font.PLAIN, 12));
mnNewMenu.add(mntmNouveau);

JMenu mnEdition = new JMenu(" Edition");
mnEdition.setPreferredSize(new Dimension(84, 22));
mnEdition.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
menuBar.add(mnEdition);

JMenuItem mntmCopier = new JMenuItem("Copier");
mntmCopier.setFont(new Font("Comic Sans MS", Font.PLAIN, 12));
mnEdition.add(mntmCopier);

JMenu mnNewMenu_1 = new JMenu(" A propos");
mnNewMenu_1.setPreferredSize(new Dimension(84, 22));
mnNewMenu_1.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
menuBar.add(mnNewMenu_1);

JMenuItem mntmQuiSommesnous = new JMenuItem("Qui sommes-nous ?");
mntmQuiSommesnous.setIcon(new ImageIcon("C:\\Program Files (x86)\\eclipse\\workspace\\perso\\Info_mini.png"));
mntmQuiSommesnous.setFont(new Font("Comic Sans MS", Font.PLAIN, 12));
mnNewMenu_1.add(mntmQuiSommesnous);
}
}

Nouveau1.java

package isostasie;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import javax.swing.SwingConstants;

public class Nouveau1 extends JInternalFrame {
private JTextField txtBravo;


/**
* Create the frame.
*/
public Nouveau1() {
setFrameIcon(null);
setBounds(0, 0, 100, 100);

txtBravo = new JTextField();
txtBravo.setHorizontalAlignment(SwingConstants.CENTER);
txtBravo.setText("Bravo !!!");
getContentPane().add(txtBravo, BorderLayout.CENTER);
txtBravo.setColumns(10);

}

}

3 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
342

Merci, j'ai trouvé.
Autre question: comment fait-on pour enregistrer le travail effectué dans mon application ?
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
342
Il faut que tu utilises une base de données ou sinon, tu as toujours la sérialisation de tes objets, tu peux chercher ca sur google