JButton

JButton - Java - Programmation

Marsh Posté le 04-01-2005 à 14:07:27    

salut tout le monde !!!
bon je dois faire une sorte de calculatrice en java et j'arrive pas à créer le bouton pour valider le calcul... j'ai fait les panel, label et textfield, ça ça va! ms pr les bouton je comprends il les veut ps....
voilà ce que j'ai écrit :
JButton JB=new Button("Calculer" );
        JB.setPreferredSize(new Dimension(100,70));
 JB.addActionListener(this);
 JB.setActionCommand("calcul" );
        JP4.add(JB);
et dc je voudrais savoir s'il manque un truc ?  
merci d'avance !  :bounce:

Reply

Marsh Posté le 04-01-2005 à 14:07:27   

Reply

Marsh Posté le 04-01-2005 à 14:10:24    

JButton jb = new JButton("Calculer" );

Reply

Marsh Posté le 04-01-2005 à 14:12:02    

merci !!! c'est vrai que déjà ça me lève une erreur...
et est ce que tu sais te servir des getContentPane() ?? pcq je comprends ps trop à quoi ça sert ça ! et est ce que c'est obligé d'en mettre ???

Reply

Marsh Posté le 04-01-2005 à 14:21:11    

c'est bien de lire ms ça serait encore mieux de me répondre !!! ;-) lol

Reply

Marsh Posté le 04-01-2005 à 14:22:42    

Reply

Marsh Posté le 04-01-2005 à 14:27:11    

merci ! c'est ps mal ce site, je vais m'en inspirez !!!lol
ms si qqn d'autre a qqch à rajouter, n'hésitez pas !!!
mercii :)

Reply

Marsh Posté le 04-01-2005 à 14:28:51    

bon je vous mets ce que j'ai fait comme ça si vous voyez un truc faux gros comme le monde dites le moi svp car je dois avouer que le java je comprends ps tout !!!
 
import javax.swing.JButton;
import java.lang.*;
import java.io.*;
import java.util.Vector;
import java.awt.Container;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Dimension;
import java.lang.Object;
 
 
 
 
 
 
class calculette extends JFrame {
    calculette() {
     
        JPanel JP1=new JPanel();
        JP1.setBackground(Color.blue);
        JP1.setPreferredSize(new Dimension(100,400));
        JP1.setLayout(new BorderLayout());
      //  Container cont=JP1.getContentPane();
 
        JPanel JP2=new JPanel();
        JP2.setBackground(Color.blue);
        JP2.setPreferredSize(new Dimension(100,80));
        JP2.setLayout(new GridLayout(1,2));
        JLabel JL1=new JLabel();
        JL1.setBackground(Color.blue);
        JP2.add(JL1);
        JLabel JL2=new JLabel();
        JL2.setBackground(Color.blue);
        JP2.add(JL2);
        JP1.add(JP2, BorderLayout.NORTH);
 
 
         
        JPanel JP3=new JPanel();
        JP3.setBackground(Color.blue);
        JP3.setPreferredSize(new Dimension(100,250));
        JP2.setLayout(new GridLayout(3,2));
        JLabel JL3=new JLabel();
        JL3.setBackground(Color.blue);
        JP3.add(JL3);
        JTextField JTF1=new JTextField();
        JTF1.setBackground(Color.blue);
        JP3.add(JTF1);
        JLabel JL4=new JLabel();
        JL4.setBackground(Color.blue);
        JP3.add(JL3);
        JTextField JTF2=new JTextField();
        JTF2.setBackground(Color.blue);
        JP3.add(JTF2);
        JLabel JL5=new JLabel();
        JL5.setBackground(Color.blue);
        JP3.add(JL5);
        JTextField JTF3=new JTextField();
        JTF3.setBackground(Color.blue);
        JP3.add(JTF3);
         
        JPanel JP4=new JPanel();
        JP4.setBackground(Color.blue);
        JP4.setPreferredSize(new Dimension(100,70));
        JP4.setLayout(new BorderLayout());
        JButton JB=new JButton("Calculer" );
        JB.setPreferredSize(new Dimension(100,70));
 JB.addActionListener(this);
 JB.setActionCommand("calcul" );
             
        JP4.add(JB);
 }
 
public void actionPerformed (ActionEvent e) {
 if(e.getActionCommand().equals("calcul" )) System.out.println("ldfhdl" );
 
 
 
}  
         
}
 
 
 
public class graphique {
    public static void main () {
    JFrame JF=new JFrame("Principale" );
    JF.setBackground(Color.gray);
    JF.setPreferredSize(new Dimension(100,400));
    JF.add(JP1);
    }
}    

Reply

Marsh Posté le 04-01-2005 à 14:30:32    

quelqu'un connait la différence entre un Button et un JButton ??

Reply

Marsh Posté le 04-01-2005 à 14:35:06    

un ContentPane est en fait un JPanel, qui est un conteneur pour d'autres composants (JButtons, JLabel, etc...).
ce JPanel contiendra tous les composants de ton interface. Il sera nécessaire de spécifier un Layout pour ce JPanel, qui te sert à spécifier la mise en place des composants (horizontalement, verticalement, en grille, etc...)

Reply

Marsh Posté le 04-01-2005 à 14:36:12    

just_me_13 a écrit :

quelqu'un connait la différence entre un Button et un JButton ??

Button fait partie d'AWT, JButton fait partie de Swing

Reply

Marsh Posté le 04-01-2005 à 14:36:12   

Reply

Marsh Posté le 04-01-2005 à 14:41:47    

Harkonnen a écrit :

un ContentPane est en fait un JPanel, qui est un conteneur pour d'autres composants (JButtons, JLabel, etc...).
ce JPanel contiendra tous les composants de ton interface. Il sera nécessaire de spécifier un Layout pour ce JPanel, qui te sert à spécifier la mise en place des composants (horizontalement, verticalement, en grille, etc...)


moi en fait j'ai un JFrame, dans ce JFrame un JPanel JP1 qui contient tout le reste...
dc ce JP1 je le déclare ps en JPanel ms en ContentPane, c'est bien ça ?  :??:

Reply

Marsh Posté le 04-01-2005 à 14:49:10    

just_me_13 a écrit :

moi en fait j'ai un JFrame, dans ce JFrame un JPanel JP1 qui contient tout le reste...
dc ce JP1 je le déclare ps en JPanel ms en ContentPane, c'est bien ça ?  :??:


pas du tout !
1/ tu créé une méthode qui crééra le ContentPane (en déclarant un JPanel, en spécifiant un layout via JPanel.setLayout() et en ajoutant tes boutons via la méthode JPanel.add()
2/ une fois ce ContentPane créé, tu l'assignes à ta Dialog dans son constructeur via un truc du genre  

Code :
  1. this.setContentPane(ContentPane);

Reply

Marsh Posté le 04-01-2005 à 14:50:57    

C'est quoi le layout sur lequel tu ajoutes tes boutons ?

Reply

Marsh Posté le 04-01-2005 à 14:56:03    

évite de faire la même connerie que moi : remplace

Code :
  1. JB.addActionListener(this);


par un truc du genre

Code :
  1. JB.addActionListener(new java.awt.event.ActionListener() {
  2.                        public void actionPerformed(java.awt.event.ActionEvent e) {...}});


Message édité par Harkonnen le 04-01-2005 à 14:57:10
Reply

Marsh Posté le 04-01-2005 à 14:58:44    

Déjà si tu veux t'y retrouvé, évite les JP1, JP2, JL1, parce que là ça donne mal à la tête de vouloir comprendre ton truc... Donne plutot des nom explicites...

Reply

Marsh Posté le 04-01-2005 à 15:00:30    

Harkonnen a écrit :

pas du tout !
1/ tu créé une méthode qui crééra le ContentPane (en déclarant un JPanel, en spécifiant un layout via JPanel.setLayout() et en ajoutant tes boutons via la méthode JPanel.add()
2/ une fois ce ContentPane créé, tu l'assignes à ta Dialog dans son constructeur via un truc du genre  

Code :
  1. this.setContentPane(ContentPane);



Pourquoi pas JF.getContentPane().add(JP1) ?
La frame a déjà un content pane, pourquoi en recréer un ?

Reply

Marsh Posté le 04-01-2005 à 15:03:12    

Oui, ça sert à rien d'en refaire un...

Reply

Marsh Posté le 04-01-2005 à 15:07:49    

ok merci
et je vais surement poser une question très con pour quelqu'un qui fait du java...
ms j'ai créé une classe calculette ds laquelle je crée tous mes panels et tout, ms comment je fais pr m'en servir dans main ???

Reply

Marsh Posté le 04-01-2005 à 15:14:17    

WhatDe a écrit :

Pourquoi pas JF.getContentPane().add(JP1) ?
La frame a déjà un content pane, pourquoi en recréer un ?

euh oui...effctivement... mais alors, pourquoi le plugin d'Eclipse m'en a recréé un ? :gratgrat:

Reply

Marsh Posté le 04-01-2005 à 15:15:34    

just_me_13 a écrit :

ok merci
et je vais surement poser une question très con pour quelqu'un qui fait du java...
ms j'ai créé une classe calculette ds laquelle je crée tous mes panels et tout, ms comment je fais pr m'en servir dans main ???


 
Tu créer un JFrame dans ton main, tu instancies ton panel et tu l'ajoute dans la JFrame :)

Reply

Marsh Posté le 04-01-2005 à 15:17:03    

just_me_13 a écrit :

ok merci
et je vais surement poser une question très con pour quelqu'un qui fait du java...
ms j'ai créé une classe calculette ds laquelle je crée tous mes panels et tout, ms comment je fais pr m'en servir dans main ???


faudrait voir à lire le tutorial de Sun hein, ça y figure :o

Reply

Marsh Posté le 04-01-2005 à 15:25:28    

Harkonnen a écrit :

euh oui...effctivement... mais alors, pourquoi le plugin d'Eclipse m'en a recréé un ? :gratgrat:


 [:airforceone]

Reply

Marsh Posté le 04-01-2005 à 15:42:31    

ben j'y suis allée sur le site de SUN ms jy comprends rien, sinon je vais sur l'api et j'ai mon bouquin sur les genoux ms je comprends ps tt  lol
ms merci qd meme ;)

Reply

Marsh Posté le 04-01-2005 à 15:46:37    


enchanté [:cupra]

Reply

Marsh Posté le 04-01-2005 à 16:22:39    


mdr  :lol:  

Reply

Marsh Posté le 04-01-2005 à 17:46:39    

ma pauvre binome(just_me_13,) vous l'avez pas bcp aidé! aller,  un peu de courage que diable, je suis sur que vous pouvez trouvé a l'aidé un peu plus!

Reply

Marsh Posté le 04-01-2005 à 17:51:32    

mdr mais non c'est gentil de m'aider nofutur mais là ça y est il m'ont aidé, j'ai fait ça ! binome très productif comme vous pouvez le constater ;) lol

Reply

Marsh Posté le 04-01-2005 à 17:57:25    

ho les femmes!!!!  
:love: -> [:aozora] -> :pt1cable:

Reply

Marsh Posté le 04-01-2005 à 17:58:08    

nofutur a écrit :

ho les femmes!!!!  
:love: -> [:aozora] -> :pt1cable:


lol mais c'était gentil quand meme !!!  :hello:

Reply

Marsh Posté le 04-01-2005 à 19:04:00    

nofutur a écrit :

ma pauvre binome(just_me_13,) vous l'avez pas bcp aidé! aller,  un peu de courage que diable, je suis sur que vous pouvez trouvé a l'aidé un peu plus!


on l'a pas beaucoup aidé, tu plaisantes ? [:mlc]

Reply

Marsh Posté le 05-01-2005 à 08:05:28    

c'est vrai, mais elle a quand même beaucoup galéré, enfin c ce que j'ai pu remarquer..de toute facon, je suis a la ramasse en java, donc je suis mal placé pour faire des commentaires en fait...
(je dois sortir? lol)

Reply

Marsh Posté le 05-01-2005 à 12:44:34    

Harkonnen a écrit :


Code :
  1. this.setContentPane(ContentPane);



bouge pas que j'attrape ma pelle ...
LE MONSIEUR TE DIT QU'ON NE SOUCLASSE PAS LES COMPOSANTS DE HAUT NIVEAU EN SWING !
 
maFrame.setContentPane(monPane);

Reply

Marsh Posté le 05-01-2005 à 12:47:01    

nraynaud a écrit :

bouge pas que j'attrape ma pelle ...
LE MONSIEUR TE DIT QU'ON NE SOUCLASSE PAS LES COMPOSANTS DE HAUT NIVEAU EN SWING !
 
maFrame.setContentPane(monPane);


bon c'est décidé, je ne fais plus confiance au code pourri produit par le plugin d'Eclipse, je fais tout à la mano parce que ça devient n'importe quoi http://forum.hardware.fr/icones/message/icon8.gif
 
edit:  [:wolfman]


Message édité par Harkonnen le 05-01-2005 à 12:47:28
Reply

Marsh Posté le 05-01-2005 à 13:38:55    

nraynaud a écrit :

bouge pas que j'attrape ma pelle ...
LE MONSIEUR TE DIT QU'ON NE SOUCLASSE PAS LES COMPOSANTS DE HAUT NIVEAU EN SWING !
 
maFrame.setContentPane(monPane);


 
Tiens, pourquoi donc ? :??:

Reply

Marsh Posté le 05-01-2005 à 13:45:29    

+1 la raison m'intéresse aussi :)

Reply

Marsh Posté le 05-01-2005 à 13:54:51    

ça sert à rien.
 
or, quand ça sert pas, on fait pas.
 
 
 
La vraie raison, c'est qu'une classe représentant un JPanel avec du monde dedans n'a pas de sens, qu'un new JPanel() c'est un panel vide, que tu n'ajoutes pas de comportement pertinent à ton JPanel, et qu'enfin on doit éviter au maximum de sous classer (surtout des classes concrêtes), et qu'il vaut mieux composer.

Reply

Marsh Posté le 05-01-2005 à 13:58:36    

L'argument de choc... un peu fumeux ;)
 
Ca peut servir de sous-classer une JFrame pour y rajouter des fonctionnalités, non ? C'est même le principe de l'héritage...

Reply

Marsh Posté le 05-01-2005 à 14:02:57    

FlorentG a écrit :

L'argument de choc... un peu fumeux ;)
 
Ca peut servir de sous-classer une JFrame pour y rajouter des fonctionnalités, non ? C'est même le principe de l'héritage...


oui mais la plupart du temps, tu utilises la JFrame, tu ne lui ajoutes pas de fonctionnalitées ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 14:04:16    

benou a écrit :

oui mais la plupart du temps, tu utilises la JFrame, tu ne lui ajoutes pas de fonctionnalitées ...


Dans ce cas là, oui ça sert à rien :jap: Mais dans les autres cas :??:

Reply

Marsh Posté le 05-01-2005 à 14:05:51    

FlorentG a écrit :

Dans ce cas là, oui ça sert à rien :jap: Mais dans les autres cas :??:


ben ils sont vachement rare les autres cas ...
 
et puis avant d'hériter d'un truc aussi compliqué qu'une JFrame, y a intérêt de savoir comment ca marche dedans ... ce que peu de gens connaissent ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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