Réalisation d'une jmenubar

Résolu/Fermé
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 29 août 2006 à 23:30
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 31 août 2006 à 10:05
Bonsoir tout le monde

J'essais de mettre une barre de menu dans mon application.

voici les code des deux class.

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;



public class Juckbox {


public final static int longu = 800;
 
public final static int larg = 700;





 
public static void main(String[] args)
{





 JFrame F = new JFrame("Juckbox");



  F.setSize(longu,larg);
  F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  F.setLayout(new GridBagLayout());
  F.setBackground(Color.darkGray);
  F.getContentPane().add(new Elementjucbox());
  F.setVisible(true);



}



}





class composantes

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color.*;

public class Elementjucbox extends JPanel implements ActionListener



{
JMenuBar menuBar;
JMenu menu;
JMenuItem menuItem;




public Elementjucbox()
{



 GridBagLayout gridbag = new GridBagLayout();
 GridBagConstraints constraints = new GridBagConstraints();
 this.setLayout(gridbag);




 



  menuBar = new JMenuBar();
  menu = new JMenu("Fichier");
  menu.setMnemonic(KeyEvent.VK_A);
  menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items");
  this.menuBar.add(menu);
  

  menuItem = new JMenuItem("Charger un audio",KeyEvent.VK_T);



 this.menu.add(menuItem);




 this.setJMenuBar(menuBar);




}

}






Je n'arrive pas à afficher la barre de menu.

J'ai essayer de faire  F.setJMenuBar(menuBar); dans la class principale, ca ne fonctionne pas. 

Là je n'aide pas d'idée.

Voici le tuto.

http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html

Pouvez vous m'aider.

Merci

Cordialement

A bientôt

13 réponses

developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
31 août 2006 à 10:05
Bonjour


Maintenant pour moi c'est confirmé, java n'accepte pas les fichier .ico.


Merci

Cordialement.


A bientôt
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 00:09
Salut,

tiens voici un code le plus simple possible mais fonctionnelle, avec un JMenuBar à toi de comparer avec ce que tu as fais afin de voir ce qui ne va pas :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Test extends JFrame{
    private static final long    serialVersionUID    = 1802199483736051124L;

    public Test(){
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(300, 300);
        setLocationRelativeTo(null);
       
        setJMenuBar(new MyJMenuBar());
       
        //juste pour le fun
        JPanel p = new JPanel();
        p.add(new JButton("Un bouton"));
        setContentPane(p);
    }

    public static void main(String[] args) {
        new Test().setVisible(true);
    }

}
class MyJMenuBar extends JMenuBar{
    private static final long    serialVersionUID    = -3611241189127829755L;

    MyJMenuBar(){
        JMenu menuFile = new JMenu("File");
        menuFile.setMnemonic('f');
        JMenuItem itemQuit = new JMenuItem("Quit");
        itemQuit.setMnemonic('q');
        itemQuit.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                System.exit(0);
            }
        });
        menuFile.add(itemQuit);
        add(menuFile);
    }
}

La seule chose super importante c'est que tu dois passer par la methode setJMenuBar pour rattacher la barre à la fenetre
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
30 août 2006 à 08:15
Bonjour tout le monde


Moi, pour le développement java j'utilise une methode qui sépare le projet en plusieurs class.

je vais essayer de creer un class pour la barre de menu, et l'inserer dans la class principal..

Voici les modification que j'ai fais.

Class principal.

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;



public class Juckbox {



 


public final static int longu = 800;
 
public final static int larg = 700;


 
public static void main(String[] args)
{





 JFrame F = new JFrame("Juckbox");



  F.setSize(longu,larg);
  F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  F.setLayout(new GridBagLayout());
  F.setBackground(Color.darkGray);
  F.getContentPane().add(new Elementjucbox());
  F.setJMenuBar(new Barremenu());
  F.setVisible(true);



}



}





La class Barremenu

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Barremenu extends JMenuBar {



JMenuBar menuBar;
JMenu menu;
JMenuItem menuItem;



public Barremenu() {





 menuBar = new JMenuBar();
 menu = new JMenu("Fichier");
 menu.setMnemonic(KeyEvent.VK_A);
 menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items");
 menuBar.add(menu);
  



 menuItem = new JMenuItem("Charger un audio",KeyEvent.VK_T);



 menu.add(menuItem);
}



}




Il n' y a plus d'erreur de compilation, mai la barre de menu ne s'affiche pas.

Que dois je faire.

Merci


Cordialement


A bientôt
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 09:19
Salut,

bon avant toute jose les règle de nomage en java sont :
pour les contantes (final static) MA_CONSTANTE_A_MOI
pour les variables static ou non maVariableAMoi
pour les methode static, final, ou simple maMethodeAMoi
pour les classes static final ou simple MaClasseAMoi
pour les packages mon_package.a_moi

Sinon pour ton problème il es entièrement logique dans ta classe tu hérite Barremenu de JMenuBar mais tu nous creer quand meme un JMenuBar dedans ce qui n'est pas correcte voici lacorrection

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Barremenu extends JMenuBar {//JMenuBar menuBar;//PAS BIEN
JMenu menu;
JMenuItem menuItem;

public Barremenu() {

  //menuBar = new JMenuBar();//PAS BIEN
 menu = new JMenu("Fichier");
 menu.setMnemonic(KeyEvent.VK_A);
 menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items");
  //menuBar.add(menu);PAS BIEN

add(menu);//BIEN
  

 menuItem = new JMenuItem("Charger un audio",KeyEvent.VK_T);

 menu.add(menuItem);
}

}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
30 août 2006 à 20:15
Bonsoir


Ca fonctionne!


Deux derniere questions.

1- Est il possible de mêttre la barr de menu en couleur.
2-Je souhaiterais mêttre des icon dans certaine item de la barre de menu, comment faire?

Merci.


Cordialement


A bientôt
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 20:37
Salut,

1 - oui c'est possible avec setBackground mais pour modifier les couleurs de selections il te faudra modifier les propriete de la jvm pour ne pas te prendre la tete ou si tu veux jouer les hard il te faut recreer les UI (soit le look and feel)

public static void main(String[] args) {
        Enumeration<Object> newKeys = UIManager.getDefaults().keys();
        while (newKeys.hasMoreElements()) {
            Object key = newKeys.nextElement();
            Object value = UIManager.getDefaults().get(key);
            System.out.println(key + "\t = \t" + value);
        }
    }

le bout de code si dessus permet d'obtenir la liste complete des propriété des différents objets graphique pour modifier  prend la clee qui t'interesse et tu fais exemple :
UIManager.put("Menu.selectionBackground", Color.BLUE);
updateUI();

2 - pour l'image tu fais exemple :
menuItem = new JMenuItem("Charger un audio", KeyEvent.VK_T);
menuItem.setIcon(new ImageIcon("icon.png"));

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
30 août 2006 à 20:50
Re

Petite question concernant les images, est ce que java prend en charge les .Icon?

Merci

A++
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 20:53
Salut,

je ne sais pas mais tu seras vite fixé en faisant le teste

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
30 août 2006 à 21:06
re

l'icon ne s'affiche pas

A+
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 21:14
c'est que ca ne doit pas fonctionner avec les .ico

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
30 août 2006 à 21:23
re

J'ai essayé de trouver des infos sur les images dans la javacdoc, mai j'ai du mal à trouver;

je me perd dans le site de sun.

a+
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 21:30
Salut,

tiens :

http://forum.java.sun.com/thread.jspa?threadID=644574

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
30 août 2006 à 21:43
donc les extention .ico ne passe pas.

A+
0
Rejoignez-nous