Ajout d'une class jpanel (extends) à une class jframe
Résolu/Fermé2 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
27 mars 2014 à 22:50
27 mars 2014 à 22:50
Le problème c'est Test.
Tu as fait un héritage de JPanel, mais tu mets tout dans la variable
Pour ne pas tout changer dans le code je fait juste cette modification dans Test :
Et voilà ;-)
Tu as fait un héritage de JPanel, mais tu mets tout dans la variable
jp
alors que c'est thisqu'il faut utiliser là.
Pour ne pas tout changer dans le code je fait juste cette modification dans Test :
JPanel jp = this; //Panneau de fond
Et voilà ;-)
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
27 mars 2014 à 20:14
27 mars 2014 à 20:14
Bonsoir,
Est-ce que tu as fait
Est-ce que tu as fait
jf.setContentPane(jpCenter)et
jf.setVisible(true)?
Re:
Merci pour ton aide !
Je viens d'essayer mais ça ne marche pas !
J'avais déjà un setContentpane. Car en fait j'ai une classe qui contient une Jframe et qui a déjà deux jpanel, et pour être plus ergonomique, j'ai fais une classe Test() qui est un extends jpanel et je voudrais intégrer la classe test extends jpanel à la classe Jframe...
Comment faire ?
Peut être vous voudriez le code ?
Merci pour ton aide !
Je viens d'essayer mais ça ne marche pas !
J'avais déjà un setContentpane. Car en fait j'ai une classe qui contient une Jframe et qui a déjà deux jpanel, et pour être plus ergonomique, j'ai fais une classe Test() qui est un extends jpanel et je voudrais intégrer la classe test extends jpanel à la classe Jframe...
jf.setContentPane(jp); jf.setVisible(true);
Comment faire ?
Peut être vous voudriez le code ?
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
27 mars 2014 à 21:19
27 mars 2014 à 21:19
"Peut être vous voudriez le code ?"
En effet, ça aide ;-)
En effet, ça aide ;-)
:) voici la 1er class Interface, le Jpanel jpCentre se trouve à la fin de la classe.
Et voici la deuxième classe Test() extends jpanel que je voudrais intégrer dans la Jframe de la 1er classe !
Merci ... !
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // // import java.awt.event.*; pour les actionListener des sections du menu !!!!! // // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Interface{ public Interface(){ JFrame jf = new JFrame("Let's go !"); JPanel jp = new JPanel(); jp.setLayout(new BorderLayout()); JMenuBar jmb = new JMenuBar(); //Titre du menu de la bar de navigation "Menu" JMenu jmMenu = new JMenu("Menu"); //Sous-menu de Menu JMenu jmLearn = new JMenu("Learn"); JMenu jmTest = new JMenu("Test"); JMenuItem jmHelp = new JMenuItem("Help"); //ActionListener --> L'action sur l'onglet Help jmHelp.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ new Help(); } }); //SousMenu jmLearn JMenu jmLearnLevelOne = new JMenu("Level 1"); JMenu jmLearnLevelTwo = new JMenu("Level 2"); //SousMenu jmLearnLevelOne part JMenuItem jmLearnLevelOnePartOne = new JMenuItem("Part 1"); //ActionListener --> L'action sur l'onglet Part n°.... jmLearnLevelOnePartOne.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Learn : Level 1 - part 1"); } }); JMenuItem jmLearnLevelOnePartTwo = new JMenuItem("Part 2"); //ActionListener --> L'action sur l'onglet Part n°.... jmLearnLevelOnePartTwo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Learn : Level 1 - part 2"); } }); JMenuItem jmLearnLevelOnePartThree = new JMenuItem("Part 3"); //ActionListener --> L'action sur l'onglet Part n°.... jmLearnLevelOnePartThree.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Learn : Level 1 - part 3"); } }); //SousMenu jmLearnLevelTwo part JMenuItem jmLearnLevelTwoPartOne = new JMenuItem("Part 1"); //ActionListener --> L'action sur l'onglet Part n°.... jmLearnLevelTwoPartOne.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Learn : Level 2 - part 1"); } }); JMenuItem jmLearnLevelTwoPartTwo = new JMenuItem("Part 2"); //ActionListener --> L'action sur l'onglet Part n°.... jmLearnLevelTwoPartTwo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Learn : Level 2 - part 2"); } }); JMenuItem jmLearnLevelTwoPartThree = new JMenuItem("Part 3"); //ActionListener --> L'action sur l'onglet Part n°.... jmLearnLevelTwoPartThree.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Learn : Level 2 - part 3"); } }); //SousMenu jmTest JMenu jmTestLevelOne = new JMenu("Level 1"); JMenu jmTestLevelTwo = new JMenu("Level 2"); //SousMenu jmTestLevelOne part JMenuItem jmTestLevelOnePartOne = new JMenuItem("Part 1"); //ActionListener --> L'action sur l'onglet Part n°.... jmTestLevelOnePartOne.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Test : Level 1 - part 1"); } }); JMenuItem jmTestLevelOnePartTwo = new JMenuItem("Part 2"); //ActionListener --> L'action sur l'onglet Part n°.... jmTestLevelOnePartTwo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Test : Level 1 - part 2"); } }); JMenuItem jmTestLevelOnePartThree = new JMenuItem("Part 3"); //ActionListener --> L'action sur l'onglet Part n°.... jmTestLevelOnePartThree.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Test : Level 1 - part 3"); } }); //SousMenu jmTestLevelTwo part JMenuItem jmTestLevelTwoPartOne = new JMenuItem("Part 1"); //ActionListener --> L'action sur l'onglet Part n°.... jmTestLevelTwoPartOne.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Test : Level 2 - part 1"); } }); JMenuItem jmTestLevelTwoPartTwo = new JMenuItem("Part 2"); //ActionListener --> L'action sur l'onglet Part n°.... jmTestLevelTwoPartTwo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Test : Level 2 - part 2"); } }); JMenuItem jmTestLevelTwoPartThree = new JMenuItem("Part 3"); //ActionListener --> L'action sur l'onglet Part n°.... jmTestLevelTwoPartThree.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(null, "Test: Test : Level 2 - part 3"); } }); //Intégration des élèments d'un JMenu à la au JMenu, JPanel et JFrame jmLearn.add(jmLearnLevelOne); jmLearnLevelOne.add(jmLearnLevelOnePartOne); jmLearnLevelOne.add(jmLearnLevelOnePartTwo); jmLearnLevelOne.add(jmLearnLevelOnePartThree); jmLearn.add(jmLearnLevelTwo); jmLearnLevelTwo.add(jmLearnLevelTwoPartOne); jmLearnLevelTwo.add(jmLearnLevelTwoPartTwo); jmLearnLevelTwo.add(jmLearnLevelTwoPartThree); jmTest.add(jmTestLevelOne); jmTestLevelOne.add(jmTestLevelOnePartOne); jmTestLevelOne.add(jmTestLevelOnePartTwo); jmTestLevelOne.add(jmTestLevelOnePartThree); jmTest.add(jmTestLevelTwo); jmTestLevelTwo.add(jmTestLevelTwoPartOne); jmTestLevelTwo.add(jmTestLevelTwoPartTwo); jmTestLevelTwo.add(jmTestLevelTwoPartThree); jmMenu.add(jmLearn); jmMenu.add(jmTest); jmMenu.add(jmHelp); jmb.add(jmMenu); jf.setJMenuBar(jmb); //Un panel Nord (pour l'en-tête du programme) JPanel jpNorth = new JPanel(); jpNorth.add(new JLabel("<html><font size=4><u>Let's go !</u></font></html>")); jp.add(jpNorth, BorderLayout.NORTH); //Un panel Centre (pour le programmes test) JPanel jpCenter = new JPanel(); jpCenter.add(new Test()); jp.add(jpCenter, BorderLayout.CENTER); jf.setVisible(true); jf.setPreferredSize(new Dimension(600,400)); jf.setResizable(false); // jf.setLocation(300,20); jf.setContentPane(jp); jf.pack(); jf.setLocationRelativeTo(null); } }
Et voici la deuxième classe Test() extends jpanel que je voudrais intégrer dans la Jframe de la 1er classe !
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test extends JPanel{ JTextField jtf; JButton jbOk; private int c = 0; private JLabel jlQuestion = new JLabel(); private int numQuestion = 0; LevelOnePartOne tab = new LevelOnePartOne(); public Test(){ super(); JPanel jp = new JPanel();//Panneau de fond jp.setLayout(new BorderLayout()); JPanel jpNorth = new JPanel(); nextQuestion(); jpNorth.add(jlQuestion); JPanel jpCenter = new JPanel(); jtf = new JTextField("",20); jpCenter.add(jtf); JPanel jpEast = new JPanel(); jbOk = new JButton("Ok"); jpEast.add(jbOk); jbOk.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ if(tab.tab2[c].equals(jtf.getText()) || tab.tab3[c].equals(jtf.getText()) || tab.tab4[c].equals(jtf.getText())) { JOptionPane.showMessageDialog(null, "Ok"); } else { JOptionPane.showMessageDialog(null, "Non"); } nextQuestion(); nextComponent(); refresh(); } }); jp.add(jpNorth, BorderLayout.NORTH); jp.add(jpCenter, BorderLayout.CENTER); jp.add(jpEast, BorderLayout.EAST); } public void refresh(){ jtf.setText(""); } public void nextQuestion(){ jlQuestion.setText("The word to translate : "+tab.tab1[numQuestion]+" ?"); // numQuestion = (numQuestion+1)%tab1.length; numQuestion++; if(numQuestion>tab.tab1.length-1) { numQuestion = 0; } } public void nextComponent(){ c++; if(c>tab.tab1.length-1) { c = 0; jbOk.setEnabled(false); jlQuestion.setText("The test is finish"); jtf.setEditable(false); } } }
Merci ... !
28 mars 2014 à 22:25