Ajout d'une class jpanel (extends) à une class jframe
Résolu/Fermé
A voir également:
- Extends jpanel
- Jpanel scrollable ✓ - Forum Programmation
- Jpanel - Forum Java
- Java extends interface ✓ - Forum Java
- Jpanel image ✓ - Forum Java
- Java: jFreeChart dans un JPanel ✓ - Forum Programmation
2 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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
jpalors 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
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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