Création/Supression de nouveaux panels
Bonjour, je débute et je patauge un peu avec Netbeans et son outil d'interfaces graphiques :)
- Mon but :
Pouvoir utiliser des CheckBox par exemple, pour créer ou supprimer des jPanels dans ma jFrame principale - Attention, ils ne sont pas créés à l'avance, je ne dois pas uniquement faire setVisible(true/false). Ces jPanels proviennent d'une autre classe, donc lorsque j'appelle un nouveau jPanel je dois lui passer quelques paramètres. Mais je ne parviens pas à "l'importer".
(J'ai vu un topic très similaire, mais la personne a trouvé et je n'ai pas encore compris)
Voici un exemple similaire avec des simples jLabels - ça ça marche :
Code:
1 2 3 4 5 6 7
| private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {
if (jCheckBox1.isSelected()) {
javax.swing.JLabel labeltest = new javax.swing.JLabel();
labeltest.setText("hello");
jPanelMain.add(labeltest);
} |
Sauf que je voudrais ajouter mes jPanels à moi, pas juste des labels. Voici ce que j'ai actuellement, le code du jPanel, et ce que j'essaye de faire pour l'importer dans ma JFrame principale :
Mon jPanel : (possède 3 composants, inactifs pour l'instant)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
package RSTPackage;
public class RSTTimer extends javax.swing.JPanel {
String item;
int seconds;
boolean isCustom;
RSTTimer(String item, int seconds, boolean isCustom) {
this.item = item;
this.seconds = seconds;
this.isCustom = isCustom;
}
public RSTTimer() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jProgressBar = new javax.swing.JProgressBar();
jButtonStart = new javax.swing.JButton();
jLabel = new javax.swing.JLabel();
setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
jProgressBar.setMinimumSize(new java.awt.Dimension(100, 15));
jProgressBar.setPreferredSize(new java.awt.Dimension(100, 15));
add(jProgressBar);
jButtonStart.setText("Start");
jButtonStart.setMaximumSize(new java.awt.Dimension(60, 15));
jButtonStart.setMinimumSize(new java.awt.Dimension(60, 15));
jButtonStart.setPreferredSize(new java.awt.Dimension(60, 15));
jButtonStart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonStartActionPerformed(evt);
}
});
add(jButtonStart);
jLabel.setText("Item");
add(jLabel);
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JButton jButtonStart;
private javax.swing.JLabel jLabel;
private javax.swing.JProgressBar jProgressBar;
// End of variables declaration
} |
Ma jFrame principale : (je veux créer mes RSTTimer dans jPanelMain)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
package RSTPackage;
public class RSTGUI extends javax.swing.JFrame {
public RSTGUI() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanelMain = new javax.swing.JPanel();
jMenuBar = new javax.swing.JMenuBar();
jMenuList = new javax.swing.JMenu();
jCheckBoxMenuItemOvl = new javax.swing.JCheckBoxMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanelMain.setMinimumSize(new java.awt.Dimension(200, 100));
jPanelMain.setPreferredSize(new java.awt.Dimension(200, 100));
jPanelMain.setLayout(new javax.swing.BoxLayout(jPanelMain, javax.swing.BoxLayout.PAGE_AXIS));
getContentPane().add(jPanelMain, java.awt.BorderLayout.CENTER);
jMenuList.setText("List");
jCheckBoxMenuItemOvl.setSelected(true);
jCheckBoxMenuItemOvl.setText("Ovl");
jCheckBoxMenuItemOvl.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jCheckBoxMenuItemOvlActionPerformed(evt);
}
});
jMenuList.add(jCheckBoxMenuItemOvl);
jMenuBar.add(jMenuList);
setJMenuBar(jMenuBar);
pack();
}// </editor-fold>
private void jCheckBoxMenuItemOvlActionPerformed(java.awt.event.ActionEvent evt) {
if (jCheckBoxMenuItemOvl.isSelected()) {
RSTTimer panelOvl = new RSTTimer("Ovl", 300, false);
jPanelMain.add(panelOvl);
panelOvl.setVisible(true);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(RSTGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(RSTGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(RSTGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(RSTGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new RSTGUI().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItemOvl;
private javax.swing.JMenuBar jMenuBar;
private javax.swing.JMenu jMenuList;
private javax.swing.JPanel jPanelMain;
// End of variables declaration
} |
Avec ça, ma Checkbox n'a aucun effet..
Merci d'avance poour votre aide :)