Insertion de text et Jcombobox dans un menu a onglet

Insertion de text et Jcombobox dans un menu a onglet - Java - Programmation

Marsh Posté le 20-03-2009 à 16:19:06    

Bonjour a tous,
 
Je développe un programme Java qui est une fenetre contenant 4 onglet.
 
Je voudrai connaitre comment integrer a un onglet une Jcombobox.
 
Voici mon code :  
 
 

Code :
  1. import javax.swing.JTabbedPane;
  2. import javax.swing.ImageIcon;
  3. import javax.swing.JLabel;
  4. import javax.swing.JPanel;
  5. import javax.swing.JFrame;
  6. import javax.swing.JComponent;
  7. import javax.swing.SwingUtilities;
  8. import javax.swing.UIManager;
  9. import com.sun.media.sound.Toolkit;
  10. import java.awt.BorderLayout;
  11. import java.awt.Dimension;
  12. import java.awt.GridLayout;
  13. import java.awt.event.KeyEvent;
  14. public class CENTRALF extends JPanel {
  15.     /**
  16.  *  
  17.  */
  18. private static final long serialVersionUID = 1L;
  19. public CENTRALF() {
  20.         super(new GridLayout(1, 1));
  21.        
  22.         JTabbedPane tabbedPane = new JTabbedPane();
  23.         ImageIcon icon = createImageIcon("image.gif" );
  24.        
  25.         JComponent panel1 = makeTextPanel("Panel #1 test" );
  26.         tabbedPane.addTab("Informations", icon, panel1,
  27.                 "Regroupe les informations du logiciel." );
  28.         tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
  29.        
  30.         JComponent panel2 = makeTextPanel("Panel #2" );
  31.         tabbedPane.addTab("Afficher", icon, panel2,
  32.                 "Permet d'afficher les données de la base." );
  33.         tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
  34.        
  35.         JComponent panel3 = makeTextPanel("Panel #3" );
  36.         tabbedPane.addTab("Inserer", icon, panel3,
  37.                 "Permet d'inserer une nouvelle données dans la base." );
  38.         tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);
  39.        
  40.         JComponent panel4 = makeTextPanel("Panel #4" );
  41.         //panel4.setPreferredSize(new Dimension(410, 50));
  42.         tabbedPane.addTab("Mettre à jour", icon, panel4,
  43.                 "Permet de mettre à jour une donnée de la base." );
  44.         tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);
  45.        
  46.         JComponent panel5 = makeTextPanel("Panel #4" );
  47.         //panel5.setPreferredSize(new Dimension(410, 50));
  48.         tabbedPane.addTab("Supprimer", icon, panel4,
  49.                 "Permet de supprimer une donnée de la base." );
  50.         tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);
  51.        
  52.         //Add the tabbed pane to this panel.
  53.         add(tabbedPane);
  54.        
  55.         //The following line enables to use scrolling tabs.
  56.         tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
  57.     }
  58.    
  59.     protected JComponent makeTextPanel(String text) {
  60.         JPanel panel = new JPanel(false);
  61.         JLabel filler = new JLabel(text);
  62.         filler.setHorizontalAlignment(JLabel.CENTER);
  63.         panel.setLayout(new GridLayout(1, 1));
  64.         panel.add(filler);
  65.         return panel;
  66.     }
  67.    
  68.    
  69.     protected static ImageIcon createImageIcon(String path) {
  70.         java.net.URL imgURL = CENTRALF.class.getResource(path);
  71.         if (imgURL != null) {
  72.             return new ImageIcon(imgURL);
  73.         } else {
  74.             System.err.println("Impossible de trouver l'image : " + path);
  75.             return null;
  76.         }
  77.     }
  78.    
  79.     /**
  80.      * Create the GUI and show it.  For thread safety,
  81.      * this method should be invoked from
  82.      * the event dispatch thread.
  83.      */
  84.     private static void createAndShowGUI() {
  85.         //Create and set up the window.
  86.         JFrame frame = new JFrame("Central-Flux" );
  87.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  88.        
  89.         //Add content to the window.
  90.         frame.add(new CENTRALF(), BorderLayout.CENTER);
  91.        
  92.         //Display the window.
  93.         frame.pack();
  94.         frame.setSize(600,175);
  95.         frame.setLocationRelativeTo(null);
  96.         frame.setIconImage(new ImageIcon("image.gif" ).getImage());
  97.         frame.setVisible(true);
  98.     }
  99.    
  100.     public static void main(String[] args) {
  101.         //Schedule a job for the event dispatch thread:
  102.         //creating and showing this application's GUI.
  103.         SwingUtilities.invokeLater(new Runnable() {
  104.             public void run() {
  105.                 //Turn off metal's use of bold fonts
  106.  UIManager.put("swing.boldMetal", Boolean.FALSE);
  107.  createAndShowGUI();
  108.             }
  109.         });
  110.     }
  111. }


 
 
Dans panel1 par exemple, comment rajouter un text, et un Combobox.
 
 
 
 
D'avance, merci, jai fait des recherche sur internet, mais mis a part des info qui m'embrouille, je n'est rien trouvé.

Reply

Marsh Posté le 20-03-2009 à 16:19:06   

Reply

Marsh Posté le 20-03-2009 à 16:26:15    

Eh bien tu peut rajouter des composants sur ton panel avec la méthode add().
Je pense qu'un petit tour par le tuto Swing te feras du bien:
http://java.sun.com/docs/books/tutorial/uiswing/


---------------
Light is right
Reply

Marsh Posté le 20-03-2009 à 16:34:24    

Merci nerisson pour cette réponse rapide, j'y jette un coup d'oeil :)

Reply

Marsh Posté le 20-03-2009 à 16:47:09    

http://java.sun.com/docs/books/tut [...] /card.html
 
 
J'ai trouvé grâce à ton lien, lundi je posterai la solution si d'autre en ont besoin, bon week end !

Reply

Marsh Posté le 23-03-2009 à 16:38:51    

Salut !  
 
Me revoila avec mon code et deux questions :  
 
Donc pour en revenir aux Jcheckbox dans un onglet : (oui oui, c'est plus des Combo mais des Check ! :) )  
 

Code :
  1. JCheckBox client = new JCheckBox("Client" );
  2.         client.setSelected(true);
  3.         panel1.add(client);


 
Sachant que panel1 est un de mes onglets, et client est ma Jcheckbox.
 
Encore merci nerisson.
 
 
Mais maintenant, un nouveau problème est apparu, malgré quelques recherches, je ne trouve pas : /  
 
 

Code :
  1. JComponent panel1 = makeTextPanel("Affichage : " );
  2.        
  3.         tabbedPane.addTab("Afficher", icon, panel1,
  4.                 "Permet d'afficher les données de la base." );
  5.        
  6.      
  7.         JCheckBox client = new JCheckBox("Client" );
  8.         client.setSelected(true);
  9.         panel1.add(client);
  10.         JCheckBox emission = new JCheckBox("Emission" );
  11.         emission.setSelected(false);
  12.         panel1.add(emission);
  13.         JCheckBox mad = new JCheckBox("Mise a disposition" );
  14.         mad.setSelected(false);
  15.         panel1.add(mad);
  16.         JCheckBox reception = new JCheckBox("Reception" );
  17.         reception.setSelected(false);
  18.         panel1.add(reception);
  19.        
  20.         JCheckBox recuperation = new JCheckBox("Recuperation" );
  21.         recuperation.setSelected(false);
  22.         panel1.add(recuperation);
  23.        
  24.         JCheckBox srvcom = new JCheckBox("Server de COM" );
  25.         srvcom.setSelected(false);
  26.         panel1.add(srvcom);
  27.        
  28.         JCheckBox transfert = new JCheckBox("Transfert" );
  29.         transfert.setSelected(false);
  30.         panel1.add(transfert);
  31.        
  32.         panel1.add(new Button("Executer" ));


 
1- Comment faire pour inserer un separateur entre panel1.add(transfert); et  panel1.add(new Button("Executer" ));
2- Comment verifier si une checkbox est coché ou non ?
 
 
2- REPONSE TROUVEE ! :

Code :
  1. if (transfert.isSelected()==true)
  2.         {
  3.          System.out.println("OKKKKKKKKKKKKK" );
  4.         }


 
Maintenant le soucis, c'est de trouver comment, a l'action du bouton "Executer" du panel1, executer une tache ?  
Apres tout ceci, je pourrai conclure mon prgrm ;)        
 
 
Merci d'avance et bonne journée !


Message édité par raxzor le 23-03-2009 à 16:51:51
Reply

Marsh Posté le 23-03-2009 à 16:56:50    

Ajoute un listener sur ton bouton


---------------
Light is right
Reply

Marsh Posté le 23-03-2009 à 17:05:23    

oki je vais voir sa merci pour l'indice :)

Reply

Marsh Posté le 23-03-2009 à 17:17:18    

J'ai trouvé la méthode, seulement, une erreur apparait lorsque j'insere la condition If dans le ActionEvent :  
 

Code :
  1. Button b = new Button("Executer" );
  2.         panel1.add(b);
  3.   b.addActionListener(new ActionListener()
  4.         {
  5.          public void actionPerformed(ActionEvent transfert)
  6.        
  7.          {
  8.           if (transfert.isSelected()==true)
  9.                  {
  10.                   System.out.println("OKKKKKKKKKKKKK" );
  11.                  }
  12.                 
  13.          }
  14.         });


 
En effet le .isSelected() est souligné en erreur par Eclipse.
Quelle est la solution ?


Message édité par raxzor le 23-03-2009 à 17:17:42
Reply

Marsh Posté le 24-03-2009 à 09:39:46    

Ben normal cette méthode n'éxiste pas.
Qu'est-ce que tu cherches à faire dans ton événement ?


---------------
Light is right
Reply

Marsh Posté le 24-03-2009 à 10:47:23    

Il faudrait que lorsque l'on clique sur le bouton, il verifie si "transfert" (une checkbox) est coché ou non, sachant qu'une checkbox est de type boolean true/false.

Reply

Marsh Posté le 24-03-2009 à 10:47:23   

Reply

Marsh Posté le 24-03-2009 à 15:13:53    

nobody ? : /

Reply

Marsh Posté le 24-03-2009 à 16:01:36    

Tu as donné le même nom à ton événement et a ta checkbox...


---------------
Light is right
Reply

Marsh Posté le 25-03-2009 à 10:24:11    

Merci bcp !!!!! En tout cas, dur dur de faire de la programmation "objet" quand on est admin reseau ... ;)

Reply

Marsh Posté le 25-03-2009 à 12:10:19    

petite question :
 
J'ai une methode :  
 

Code :
  1. public String[] getAttSrvCom()
  2.   {
  3.    String[] AttSrvCom =
  4.          {
  5.             "Id Server ",
  6.             "Nom Server ",
  7.             "Adresse IP publique Server ",
  8.             "Adresse IP privée Server",
  9.             "Emplacement Server ",
  10.             "Environement Server"
  11.          };
  12.    return AttSrvCom;
  13.   }


 
 
est il possible d'implementer le resultat dans un Text Area ?  
 
 

Code :
  1. String[] insera2 = getAttClient();
  2.              JTextArea textAreaInsera = new JTextArea(insera2);
  3.               textAreaInsera.setLineWrap(true);
  4.                textAreaInsera.setWrapStyleWord(true);
  5.                panel3.add(textAreaInsera);


 
 
comme ceci ne marche pas, y'a t-il une solution possible ? merci bcp ;)


Message édité par raxzor le 25-03-2009 à 12:10:42
Reply

Marsh Posté le 25-03-2009 à 13:23:45    

Essaye avec  
  JTextArea textAreaInsera = new JTextArea(java.util.Arrays.asList(insera2));
 
Est-ce que tu regardes bien la JavaDoc ? Parce que la tu poses des questions très triviales...


---------------
Light is right
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed