Réalisation d'une jmenubar [Résolu/Fermé]

developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 29 août 2006 à 23:30 - Dernière réponse : developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention
- 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
Afficher la suite 

13 réponses

Meilleure réponse
developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 31 août 2006 à 10:05
3
Merci
Bonjour


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


Merci

Cordialement.


A bientôt

Merci developvbdebut 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de developvbdebut
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 30 août 2006 à 00:09
0
Merci
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
Commenter la réponse de Twinuts
developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 30 août 2006 à 08:15
0
Merci
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
Commenter la réponse de developvbdebut
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 30 août 2006 à 09:19
0
Merci
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
Commenter la réponse de Twinuts
developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 30 août 2006 à 20:15
0
Merci
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
Commenter la réponse de developvbdebut
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 30 août 2006 à 20:37
0
Merci
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
Commenter la réponse de Twinuts
developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 30 août 2006 à 20:50
0
Merci
Re

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

Merci

A++
Commenter la réponse de developvbdebut
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 30 août 2006 à 20:53
0
Merci
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
Commenter la réponse de Twinuts
developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 30 août 2006 à 21:06
0
Merci
re

l'icon ne s'affiche pas

A+
Commenter la réponse de developvbdebut
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 30 août 2006 à 21:14
0
Merci
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
Commenter la réponse de Twinuts
developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 30 août 2006 à 21:23
0
Merci
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+
Commenter la réponse de developvbdebut
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 30 août 2006 à 21:30
0
Merci
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
Commenter la réponse de Twinuts
developvbdebut 476 Messages postés samedi 14 août 2004Date d'inscription 2 juin 2012 Dernière intervention - 30 août 2006 à 21:43
0
Merci
donc les extention .ico ne passe pas.

A+
Commenter la réponse de developvbdebut

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.