Solution non exacte!!!!
Résolu
marwamrewa
Messages postés
175
Statut
Membre
-
marwamrewa Messages postés 175 Statut Membre -
marwamrewa Messages postés 175 Statut Membre -
Bonjour à tous , je voudrais faire une JFrame qui contient un panel dans la partie est qui contient 4 boutons"ugras>up left right dwan" pour déplacer l'oval dans le sens indiquer voici mon essai j'attend votre aide et merci d'avance
**********************************************************************
import java.awt.*;
import java.awt .Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Fenetre extends JFrame implements ActionListener{
private JPanel p,p1,p2,p3;
private JButton b1,b2,b3 ,b4;
private int hight=140;
private int width=400;
private int x=200;
private int y=70/2;
public Fenetre()
{
setBackground(Color.BLUE);
p=new JPanel();
p1=new JPanel();
b1=new JButton("UP");
b1.addActionListener(this);
p1.add(b1);
p.add(p1, BorderLayout.NORTH);
p2=new JPanel();
b2=new JButton("LEFT");
b2.addActionListener(this);
p2.add(b2);
b3=new JButton("RIGHT");
b3.addActionListener(this);
p2.add(b3);
p.add(p2, BorderLayout.CENTER);
p3=new JPanel();
b4=new JButton("DOWN");
b4.addActionListener(this);
p3.add(b4);
p.add(p3, BorderLayout.SOUTH);
this.add(p,BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==b1){
y-=10;
repaint();
}
else if(e.getSource()==b2){
x=-10;
repaint();
}
else if(e.getSource()==b3){
x=+10;
repaint();
}
else if(e.getSource()==b4){
y+=10;
repaint();
}
// TODO Auto-generated method stub
}
public void paint (Graphics g){
g.setColor(Color.RED);
g.fillOval(x,y, 100, 100);
}
public static void main(String [] args ){
JFrame f=new Fenetre();
f.setSize(400,140);
f.setVisible(true);
}
}
*********************************************************************
**********************************************************************
import java.awt.*;
import java.awt .Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Fenetre extends JFrame implements ActionListener{
private JPanel p,p1,p2,p3;
private JButton b1,b2,b3 ,b4;
private int hight=140;
private int width=400;
private int x=200;
private int y=70/2;
public Fenetre()
{
setBackground(Color.BLUE);
p=new JPanel();
p1=new JPanel();
b1=new JButton("UP");
b1.addActionListener(this);
p1.add(b1);
p.add(p1, BorderLayout.NORTH);
p2=new JPanel();
b2=new JButton("LEFT");
b2.addActionListener(this);
p2.add(b2);
b3=new JButton("RIGHT");
b3.addActionListener(this);
p2.add(b3);
p.add(p2, BorderLayout.CENTER);
p3=new JPanel();
b4=new JButton("DOWN");
b4.addActionListener(this);
p3.add(b4);
p.add(p3, BorderLayout.SOUTH);
this.add(p,BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==b1){
y-=10;
repaint();
}
else if(e.getSource()==b2){
x=-10;
repaint();
}
else if(e.getSource()==b3){
x=+10;
repaint();
}
else if(e.getSource()==b4){
y+=10;
repaint();
}
// TODO Auto-generated method stub
}
public void paint (Graphics g){
g.setColor(Color.RED);
g.fillOval(x,y, 100, 100);
}
public static void main(String [] args ){
JFrame f=new Fenetre();
f.setSize(400,140);
f.setVisible(true);
}
}
*********************************************************************
A voir également:
- Solution non exacte!!!!
- Trouver mon adresse exacte - Guide
- Driverpack solution - Télécharger - Divers Utilitaires
- Ou est charlie le livre magique solution - Forum Loisirs / Divertissements
- Ou est charlie solution tome 1 - Forum Loisirs / Divertissements
- Mots entre amis messenger solution ✓ - Forum jeux en ligne
3 réponses
Il faut que tu ais un minimum de méthode avant de coder n'importe comment !
Par exemple, pourquoi appeler tes boutons b1, b2, b3, et b4 ? Il faut leur donner des noms explicites ! Ici par exemple tu peux les appeler up, down, left, right, ce sera bien plus clair.
On peut également parler de tes JPanel, ils ne servent à rien, tu peux tous les supprimer !
Pour ce qui est de ton implements ActionListener, ça n'a pas vraiment de sens de dire que c'est à la fenêtre de détecter quand tu appuies sur un bouton. En fait, ce sont les boutons eux même qu'il faut contrôler.
Enfin, pour ta méthode paint, il ne faut pas oublier de faire appel à la méthode parente super.paint sinon l'affichage ne fera pas ce que tu veux.
Par exemple, pourquoi appeler tes boutons b1, b2, b3, et b4 ? Il faut leur donner des noms explicites ! Ici par exemple tu peux les appeler up, down, left, right, ce sera bien plus clair.
On peut également parler de tes JPanel, ils ne servent à rien, tu peux tous les supprimer !
Pour ce qui est de ton implements ActionListener, ça n'a pas vraiment de sens de dire que c'est à la fenêtre de détecter quand tu appuies sur un bouton. En fait, ce sont les boutons eux même qu'il faut contrôler.
Enfin, pour ta méthode paint, il ne faut pas oublier de faire appel à la méthode parente super.paint sinon l'affichage ne fera pas ce que tu veux.
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class Fenetre extends JFrame { private static final long serialVersionUID = 1; private final int WIDTH=500, HEIGHT=500, RADIUS=50, DELTA=10; private int x=WIDTH/2, y=HEIGHT/2; public Fenetre() { getContentPane().setBackground(Color.BLUE); JButton up=new JButton("UP"); up.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { y -= DELTA; repaint(); } }); add(up,BorderLayout.NORTH); JButton down=new JButton("DOWN"); down.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { y += DELTA; repaint(); } }); add(down,BorderLayout.SOUTH); JButton left=new JButton("LEFT"); left.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { x -= DELTA; repaint(); } }); add(left,BorderLayout.WEST); JButton right=new JButton("RIGHT"); right.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { x += DELTA; repaint(); } }); add(right,BorderLayout.EAST); setSize(WIDTH,HEIGHT); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public void paint(Graphics g) { super.paint(g); g.setColor(Color.RED); g.fillOval(x-RADIUS,y-RADIUS, 2*RADIUS, 2*RADIUS); } public static void main(String[] args) { new Fenetre(); } }