JButton - Java - Programmation
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 ???
Marsh Posté le 04-01-2005 à 14:21:11
c'est bien de lire ms ça serait encore mieux de me répondre !!! ;-) lol
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
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);
}
}
Marsh Posté le 04-01-2005 à 14:30:32
quelqu'un connait la différence entre un Button et un JButton ??
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...)
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
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...). |
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 ?
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... |
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 :
|
Marsh Posté le 04-01-2005 à 14:56:03
évite de faire la même connerie que moi : remplace
Code :
|
par un truc du genre
Code :
|
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...
Marsh Posté le 04-01-2005 à 15:00:30
Harkonnen a écrit : pas du tout !
|
Pourquoi pas JF.getContentPane().add(JP1) ?
La frame a déjà un content pane, pourquoi en recréer un ?
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 ???
Marsh Posté le 04-01-2005 à 15:14:17
WhatDe a écrit : Pourquoi pas JF.getContentPane().add(JP1) ? |
euh oui...effctivement... mais alors, pourquoi le plugin d'Eclipse m'en a recréé un ?
Marsh Posté le 04-01-2005 à 15:15:34
just_me_13 a écrit : ok merci |
Tu créer un JFrame dans ton main, tu instancies ton panel et tu l'ajoute dans la JFrame
Marsh Posté le 04-01-2005 à 15:17:03
just_me_13 a écrit : ok merci |
faudrait voir à lire le tutorial de Sun hein, ça y figure
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 ? |
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
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!
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
Marsh Posté le 04-01-2005 à 17:58:08
ReplyMarsh 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 ?
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)
Marsh Posté le 05-01-2005 à 12:44:34
Harkonnen 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);
Marsh Posté le 05-01-2005 à 12:47:01
nraynaud a écrit : bouge pas que j'attrape ma pelle ... |
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
edit:
Marsh Posté le 05-01-2005 à 13:38:55
nraynaud a écrit : bouge pas que j'attrape ma pelle ... |
Tiens, pourquoi donc ?
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.
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...
Marsh Posté le 05-01-2005 à 14:02:57
FlorentG a écrit : L'argument de choc... un peu fumeux |
oui mais la plupart du temps, tu utilises la JFrame, tu ne lui ajoutes pas de fonctionnalitées ...
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 Mais dans les autres cas
Marsh Posté le 05-01-2005 à 14:05:51
FlorentG a écrit : Dans ce cas là, oui ça sert à rien 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 ...
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 !