developvbdebut
Messages postés476Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 2 juin 2012
-
29 août 2006 à 23:30
developvbdebut
Messages postés476Date d'inscriptionsamedi 14 août 2004StatutMembreDerniè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.
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.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 :
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 ..."
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.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."