Salut tout le monde voila mon problème j’ai crée un jFrame ou j’affiche plusieurs JInternalFrame dans l’une de JInternalFrame (J1) j’ai crée un jbutton, quant je click sure ce button je vue qu’une autre JInternalFrame (J2) s’affiche mais le problème c’est que
Le JInternalFrame (J2) s’affiche à l’intérieur de JInternalFrame (J1) et non pas à l’intérieur de JForm
SVP si quelqu'un a une idée me la propose, je suis debutante en java et j'ai vraiment besoin de votre aide .
merci d'avance
voici le code que j’ai écrit
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
A= new JDesktopPane();
setContentPane(A);
L = new J2();
A.add(L);
try {
L.setSelected(true);
} catch (PropertyVetoException ex) {
}
L.setLocation(10, 10);
L.setVisible(true);
}


Hello,
Je n'ai pas trop compris ton problème avec ton exemple de code très épuré :D
Ceci dit je te donne un exemple minimaliste qui ajoute un JInternalFrame dans le fenêtre principale.
package graphic; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JPanel; public class JInternalFrameViewer extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; JPanel mJInternalFrameController = new JPanel(); JButton mButtonAddJInternalFrame = new JButton("Ajout"); JPanel mJInternalFrameContainer = new JPanel(); static final int sJInternalFrameViewerWidth = 850; static final int sJInternalFrameViewerHeigth = 527; static final int sJInternalFrameContainerWidth = 600; static final int sJInternalFrameContainerHeigth = 500; static final int sJInternalFrameControllerWidth = 250; static final int sJInternalFrameControllerHeigth = 500; public JInternalFrameViewer() { setTitle("JInternalFrameViewer"); setLayout(null); setBounds(0, 0, sJInternalFrameViewerWidth, sJInternalFrameViewerHeigth); /** */ mJInternalFrameContainer.setLayout(null); mJInternalFrameContainer.setBorder(BorderFactory.createLineBorder(Color.black)); mJInternalFrameContainer.setBounds(0, 0, sJInternalFrameContainerWidth, sJInternalFrameContainerHeigth); mJInternalFrameController.setBounds(sJInternalFrameContainerWidth, 0, sJInternalFrameControllerWidth, sJInternalFrameControllerHeigth); mJInternalFrameController.setBorder(BorderFactory.createLineBorder(Color.black)); /** */ mButtonAddJInternalFrame.addActionListener(this); /** */ JInternalFrame vJInternalFrame = new JInternalFrame(); vJInternalFrame.setBackground(Color.blue); vJInternalFrame.setBounds(0, 0, 200, 200); vJInternalFrame.setVisible(true); /** */ mJInternalFrameContainer.add(vJInternalFrame); mJInternalFrameController.add(mButtonAddJInternalFrame); add(mJInternalFrameContainer); add(mJInternalFrameController); setVisible(true); setResizable(false); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public void actionPerformed(ActionEvent pE) { JInternalFrame vJInternalFrame = new JInternalFrame(); vJInternalFrame.setBounds(300, 50, 200, 200); vJInternalFrame.setVisible(true); vJInternalFrame.setBackground(Color.green); mJInternalFrameContainer.add(vJInternalFrame); } }Et la classe main pour le lancer :
import graphic.JInternalFrameViewer; public class Program { /** * @param args */ public static void main(String[] args) { new JInternalFrameViewer(); } }Bonne chance,
Niroken
J’explique le problème une autre fois et je vous envois une parti du code:
j’ai crée un jFrame ou j’affiche plusieurs JInternalFrame .dans l’une de JInternalFrame (IUEmploye) j’ai crée un jbutton, quand je click sure ce button une autre JInternalFrame (Detail) s’affiche et la première ce ferme, mais le problème c’est que
Actuellement Si Je vue faire l'inverse, a partir d'un button « B2» qui se trouve à JInternalFrame « Detail » je vue revenir à JInternalFrame « IUEmploye »
j'ai essayer cette Solution mais j'ai eu cette erreur :
voici une parti du code des 3 class IUMenu ,IUEmploye et Detail
//class IUMenu import java.beans.PropertyVetoException; import java.sql.SQLException; import javax.swing.JDesktopPane; publicclass IUMenu extends javax.swing.JFrame{ JDesktopPane d; IUEmploye e; ... public IUMenu(){ initComponents(); d= new JDesktopPane(); setContentPane(d); } ... privatevoid jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt){ e = new IUEmploye(this); d.add(e); try{ e.setSelected(true); }catch(PropertyVetoException ex){ Logger.getLogger(IUMenu.class.getName()).log(Level.SEVERE, null, ex); } e.setLocation(10, 10); e.setVisible(true); } .... }//classe IUEmploye import javax.swing.JDesktopPane; publicclass IUEmploye extends javax.swing.JInternalFrame{ IUMenu menu; Detail L; public IUEmploye (){ initComponents(); } public IUEmploye (IUMenu menu){ this.menu = menu; try{ initComponents(); } catch(SQLException ex){ System.out.println(ex.getMessage()); } } .... privatevoid jButton2ActionPerformed(java.awt.event.ActionEvent evt){ // TODO add your handling code here: L = new Detail (); menu.d.add(L); try{ L.setSelected(true); } catch(PropertyVetoException ex){ Logger.getLogger(IUMenu.class.getName()).log(Level.SEVERE, null, ex); } L.setLocation(20, 10); L.setVisible(true); this.setVisible(false); } }//******Detail import java.beans.PropertyVetoException; public class Detail extends javax.swing.JInternalFrame { /** Creates new form Detail */ IUMenu m; IUEmploye em; public Detail () { initComponents(); } public Detail (IUMenu m) { initComponents(); this.m = m; } private void B2(java.awt.event.ActionEvent evt) { em = new IUEmploye (); m.d.add(em); try { em.setSelected(true); } catch (PropertyVetoException ex) { } em.setLocation(20, 10); em .setVisible(true); this.setVisible(false); }SVP si quelqu'unBonjour,
Je vais peut-être te paraître dur mais si je peux te donner un conseil, il faut voir trois choses:
- Ton problème n'est pas clairement défini.
- Donner la moitié de son code n'aide presque pas parce que on ne peut pas le compiler donc potentiellement pas reproduire l'erreur.
- Enfin vérifier que le code fourni est en adéquation avec l'erreur.
Quand je vois dans ton log d'erreur :
Je m'attends donc à voir une méthode "jButton1ActionPerformed" dans IUEmploye, or à première vue, IUEmploye ne possède pas de méthode "jButton1ActionPerformed" mais une méthode "jButton2ActionPerformed".
Bonne chance,
Niroken