Débutante en java, je souhaiterais vous poser 3 questions :
Voici le cadre de mon programme :
j'ai créé un panneau dans une JInternalFrame qui contient un champ de
saisie x_coordonnee, un bouton OK et un graphique 2D :
Dans mon panneau pG je crée un dessin 2D quelconque.
class Panneau extends JPanel
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawLine(40,200,40,70);
}
La classe de mon écouteur d'évenement est la suivante :
public void actionPerformed(ActionEvent e)
{
JButton b = (JButton) e.getSource();
if(b==ok)
{
string ch = saisie.getText();
// je souhaiterais rajouter une nouvelle ligne à mon graphique
avec comme coordonnée pour x celle du champ de saisie
}
}
Mes questions :
1. je souhaiterais savoir comment récupérer mon champ de saisie et le
convertir en un type entier ? ou existe-t-il un champ de saisie
JIntField ?
2. Je souhaiterais savoir comment rajouter un nouveau composant
quelconque (ligne, rectangle) à mon graphique lorsque je clique sur mon
bouton OK.
Lorsque je redimensionne ma JInternalFrame ou lorsque j'iconifie cette
fenêtre ce nouveau composant devrait être réaffiché également.
3. Lorsque je transforme (translation et rotation de 90°) l'un des
composants de mon graphique en rajoutant dans ma classe Panneau :
Graphics 2D gd2 = (Graphics2D)g ;
AffineTransform at = new AffinTransform();
at.setToTranslation(10.0,40.0);
g2d.transform(at);
at.setToRotation(Math.PI/2.0);
g2d.transform(at);
g.drawString("axe des abscisses", 0,0);
j'obtiens bien un texte vertical. Ma question est de savoir comment
faire une nouvelle transformation à la suite de celle-ci ? Parce que
lorsque
je recrée une nouvelle transformation affine elle s'applique également à
la transformation précédente mais je voudrais recréer une nouvelle
transformation.
Merci d'avance pour votre aide et votre attention !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Isammoc
1. je souhaiterais savoir comment récupérer mon champ de saisie et le convertir en un type entier ? ou existe-t-il un champ de saisie JIntField ?
regarde ce lien : http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTextField.html
et fait la meme chose mais pour des entiers... et puis, tu peux faire un Integer.parseInt(String)
2. Je souhaiterais savoir comment rajouter un nouveau composant quelconque (ligne, rectangle) à mon graphique lorsque je clique sur mon bouton OK. Lorsque je redimensionne ma JInternalFrame ou lorsque j'iconifie cette fenêtre ce nouveau composant devrait être réaffiché également.
Tu associe ton bouton OK à une action que tu a redéfini qui prend comme paramètre ton graphique, et qui dessine dedans..
3. Lorsque je transforme (translation et rotation de 90°) l'un des composants de mon graphique en rajoutant dans ma classe Panneau :
Graphics 2D gd2 = (Graphics2D)g ; AffineTransform at = new AffinTransform(); at.setToTranslation(10.0,40.0); g2d.transform(at); at.setToRotation(Math.PI/2.0); g2d.transform(at); g.drawString("axe des abscisses", 0,0);
j'obtiens bien un texte vertical. Ma question est de savoir comment faire une nouvelle transformation à la suite de celle-ci ? Parce que lorsque je recrée une nouvelle transformation affine elle s'applique également à
la transformation précédente mais je voudrais recréer une nouvelle transformation.
Là, je sais pas ;-P
Merci d'avance pour votre aide et votre attention !
de rien ;)
-- Isammoc
1. je souhaiterais savoir comment récupérer mon champ de saisie et le
convertir en un type entier ? ou existe-t-il un champ de saisie
JIntField ?
regarde ce lien :
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTextField.html
et fait la meme chose mais pour des entiers...
et puis, tu peux faire un Integer.parseInt(String)
2. Je souhaiterais savoir comment rajouter un nouveau composant
quelconque (ligne, rectangle) à mon graphique lorsque je clique sur mon
bouton OK.
Lorsque je redimensionne ma JInternalFrame ou lorsque j'iconifie cette
fenêtre ce nouveau composant devrait être réaffiché également.
Tu associe ton bouton OK à une action que tu a redéfini qui prend comme
paramètre ton graphique, et qui dessine dedans..
3. Lorsque je transforme (translation et rotation de 90°) l'un des
composants de mon graphique en rajoutant dans ma classe Panneau :
Graphics 2D gd2 = (Graphics2D)g ;
AffineTransform at = new AffinTransform();
at.setToTranslation(10.0,40.0);
g2d.transform(at);
at.setToRotation(Math.PI/2.0);
g2d.transform(at);
g.drawString("axe des abscisses", 0,0);
j'obtiens bien un texte vertical. Ma question est de savoir comment
faire une nouvelle transformation à la suite de celle-ci ? Parce que
lorsque
je recrée une nouvelle transformation affine elle s'applique également
à
la transformation précédente mais je voudrais recréer une nouvelle
transformation.
Là, je sais pas ;-P
Merci d'avance pour votre aide et votre attention !
1. je souhaiterais savoir comment récupérer mon champ de saisie et le convertir en un type entier ? ou existe-t-il un champ de saisie JIntField ?
regarde ce lien : http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTextField.html
et fait la meme chose mais pour des entiers... et puis, tu peux faire un Integer.parseInt(String)
2. Je souhaiterais savoir comment rajouter un nouveau composant quelconque (ligne, rectangle) à mon graphique lorsque je clique sur mon bouton OK. Lorsque je redimensionne ma JInternalFrame ou lorsque j'iconifie cette fenêtre ce nouveau composant devrait être réaffiché également.
Tu associe ton bouton OK à une action que tu a redéfini qui prend comme paramètre ton graphique, et qui dessine dedans..
3. Lorsque je transforme (translation et rotation de 90°) l'un des composants de mon graphique en rajoutant dans ma classe Panneau :
Graphics 2D gd2 = (Graphics2D)g ; AffineTransform at = new AffinTransform(); at.setToTranslation(10.0,40.0); g2d.transform(at); at.setToRotation(Math.PI/2.0); g2d.transform(at); g.drawString("axe des abscisses", 0,0);
j'obtiens bien un texte vertical. Ma question est de savoir comment faire une nouvelle transformation à la suite de celle-ci ? Parce que lorsque je recrée une nouvelle transformation affine elle s'applique également à
la transformation précédente mais je voudrais recréer une nouvelle transformation.
Là, je sais pas ;-P
Merci d'avance pour votre aide et votre attention !
de rien ;)
-- Isammoc
Zazoun
2. Je souhaiterais savoir comment rajouter un nouveau composant quelconque (ligne, rectangle) à mon graphique lorsque je clique sur mon
bouton OK. Lorsque je redimensionne ma JInternalFrame ou lorsque j'iconifie cette
fenêtre ce nouveau composant devrait être réaffiché également.
Tu associe ton bouton OK à une action que tu a redéfini qui prend comme
paramètre ton graphique, et qui dessine dedans..
Le composant dans lequel tu dessines doit avoir une référence vers le modèle qu'il représente (pour toi, a priori, une liste des objets à dessiner : points, lignes ...), et "écouter" les modifications de ce modèle, pour se repeindre quand le modèle a changé. L'action du bouton OK, quand à elle, doit modifier le modèle. (Vois de la documentation sur le modèle "Modèle-Vue-Controleur")
3. Lorsque je transforme (translation et rotation de 90°) l'un des composants de mon graphique en rajoutant dans ma classe Panneau :
Graphics 2D gd2 = (Graphics2D)g ; AffineTransform at = new AffinTransform(); at.setToTranslation(10.0,40.0); g2d.transform(at); at.setToRotation(Math.PI/2.0); g2d.transform(at); g.drawString("axe des abscisses", 0,0);
j'obtiens bien un texte vertical. Ma question est de savoir comment faire une nouvelle transformation à la suite de celle-ci ? Parce que
lorsque je recrée une nouvelle transformation affine elle s'applique également
à
la transformation précédente mais je voudrais recréer une nouvelle
transformation.
La méthode transform(AffineTransform tx) de Graphics2D ajoute la transformation affine en paramètre à celle que contient déjà Graphics2D. Si tu veux redéfinir cette dernière, utilise plutôt la méthode setTransform( AffineTransform tx).
2. Je souhaiterais savoir comment rajouter un nouveau composant
quelconque (ligne, rectangle) à mon graphique lorsque je clique
sur mon
bouton OK.
Lorsque je redimensionne ma JInternalFrame ou lorsque j'iconifie
cette
fenêtre ce nouveau composant devrait être réaffiché également.
Tu associe ton bouton OK à une action que tu a redéfini qui prend
comme
paramètre ton graphique, et qui dessine dedans..
Le composant dans lequel tu dessines doit avoir une référence vers le
modèle qu'il représente (pour toi, a priori, une liste des objets à
dessiner : points, lignes ...), et "écouter" les modifications de ce
modèle, pour se repeindre quand le modèle a changé. L'action du
bouton OK, quand à elle, doit modifier le modèle. (Vois de la
documentation sur le modèle "Modèle-Vue-Controleur")
3. Lorsque je transforme (translation et rotation de 90°) l'un des
composants de mon graphique en rajoutant dans ma classe Panneau :
Graphics 2D gd2 = (Graphics2D)g ;
AffineTransform at = new AffinTransform();
at.setToTranslation(10.0,40.0);
g2d.transform(at);
at.setToRotation(Math.PI/2.0);
g2d.transform(at);
g.drawString("axe des abscisses", 0,0);
j'obtiens bien un texte vertical. Ma question est de savoir comment
faire une nouvelle transformation à la suite de celle-ci ? Parce
que
lorsque
je recrée une nouvelle transformation affine elle s'applique
également
à
la transformation précédente mais je voudrais recréer une
nouvelle
transformation.
La méthode transform(AffineTransform tx) de Graphics2D ajoute la
transformation affine en paramètre à celle que contient déjà
Graphics2D. Si tu veux redéfinir cette dernière, utilise plutôt la
méthode setTransform( AffineTransform tx).
2. Je souhaiterais savoir comment rajouter un nouveau composant quelconque (ligne, rectangle) à mon graphique lorsque je clique sur mon
bouton OK. Lorsque je redimensionne ma JInternalFrame ou lorsque j'iconifie cette
fenêtre ce nouveau composant devrait être réaffiché également.
Tu associe ton bouton OK à une action que tu a redéfini qui prend comme
paramètre ton graphique, et qui dessine dedans..
Le composant dans lequel tu dessines doit avoir une référence vers le modèle qu'il représente (pour toi, a priori, une liste des objets à dessiner : points, lignes ...), et "écouter" les modifications de ce modèle, pour se repeindre quand le modèle a changé. L'action du bouton OK, quand à elle, doit modifier le modèle. (Vois de la documentation sur le modèle "Modèle-Vue-Controleur")
3. Lorsque je transforme (translation et rotation de 90°) l'un des composants de mon graphique en rajoutant dans ma classe Panneau :
Graphics 2D gd2 = (Graphics2D)g ; AffineTransform at = new AffinTransform(); at.setToTranslation(10.0,40.0); g2d.transform(at); at.setToRotation(Math.PI/2.0); g2d.transform(at); g.drawString("axe des abscisses", 0,0);
j'obtiens bien un texte vertical. Ma question est de savoir comment faire une nouvelle transformation à la suite de celle-ci ? Parce que
lorsque je recrée une nouvelle transformation affine elle s'applique également
à
la transformation précédente mais je voudrais recréer une nouvelle
transformation.
La méthode transform(AffineTransform tx) de Graphics2D ajoute la transformation affine en paramètre à celle que contient déjà Graphics2D. Si tu veux redéfinir cette dernière, utilise plutôt la méthode setTransform( AffineTransform tx).