Utilitaire de traitement d'image

amalouch1 Messages postés 11 Date d'inscription mercredi 8 juillet 2009 Statut Membre Dernière intervention 27 août 2010 - 11 juil. 2009 à 13:24
amalouch1 Messages postés 11 Date d'inscription mercredi 8 juillet 2009 Statut Membre Dernière intervention 27 août 2010 - 11 juil. 2009 à 19:36
bonjour tout le monde je suis étudiante en 1ere année et j'ai un projet qui est : réalisation d'un utilitaire de traitement d'image (pivoter, inverser, zoom...).j'ai fait des recherches et j'ai trouvé un code qui charge et affiche les images :
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 * Created on 11-juin-09
 *
 *
 */

public class imag {

    public static void main(String[] args) {
        try {
            BufferedImage img = ImageIO.read(new File("C:/1.bmp"));
            JFrame frame = new JFrame("Demo load image");
            frame.getContentPane().add(new JLabel(new ImageIcon(img)));
            frame.pack();
            frame.setVisible(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

et maintenant je veux ajouter des boutons en bas pour réaliser les zoom, inversion,...
j'ai trouvé un code qui ajoute des boutons mais dans une interface séparée :
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;

public class FenetreBoutonsListener extends JFrame implements ActionListener{
    private JButton bouton;
    private JButton bouton2;
       
    public FenetreBoutonsListener(){
        super();
       
        build();//On initialise notre fenêtre
    }
   
    private void build(){
        setTitle("Fenêtre qui affiche des boutons"); //On donne un titre à l'application
        setSize(320,240); //On donne une taille à notre fenêtre
        setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
        setResizable(true); //On permet le redimensionnement
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
        setContentPane(buildContentPane());
    }
   
    private JPanel buildContentPane(){
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());
       
        bouton = new JButton("Cliquez ici !");
        bouton.addActionListener(this);
        panel.add(bouton);
               
        bouton2 = new JButton("Ou là !");
        bouton2.addActionListener(this);
        panel.add(bouton2);
       
        return panel;
    }
   
    public static void main(String[] args) {
        //On crée une nouvelle instance de notre FenetreBoutons
        FenetreBoutonsListener fenetre = new FenetreBoutonsListener();
        fenetre.setVisible(true);//On la rend visible
    }
   
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
       
        if(source == bouton){
            System.out.println("Vous avez cliqué ici.");
        } else if(source == bouton2){
            System.out.println("Vous avez cliqué là.");   
        }
    }
}
mais je veux avoir les bouton en bas de l'image.
j'attends votre aide mes amis.
merci à tous.

2 réponses

Kotomine Messages postés 112 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 5 novembre 2009
11 juil. 2009 à 17:42
Salut, en fait , ton post se cadre plus dans l'arrangement de composants graphiques que du traitement de l'image !

Dans java (swing), ce qui positionne tes composants, ce sont des layouts.
Le plus simple (a mon avis), est le BorderLayout, qui te permet d'arranger tes composants dans des coins de ta fenêtre

En gros tu fais

JPanel buttonsPanel = new JPanel();
buttonsPanel.setLayout(new BorderLayout());
buttonsPanel.add(monBoutonRotate,  BorderLayout.EAST);
buttonsPanel.add(monBoutonRotate,  BorderLayout.WEST);

JPanel imageButtonsPanel = new JPanel();
imageButtonsPanel.setLayout(new BorderLayout());
imageButtonsPanel.add(monimage, BorderLayout.NORTH);
imageButtonsPanel.add(buttonsPanel, BorderLayout.SOUTH);

Et enfin, tu as juste à faire

JFrame frame = new JFrame("bonjour!");
frame.add(imageButtonsPanel);
frame.pack();
frame.setvisible(true);

tuto ici
http://java.sun.com/docs/books/tutorial/uiswing/layout/border.html

; I'm just keeping the hopeless cross to increase the meaninglessness
0
amalouch1 Messages postés 11 Date d'inscription mercredi 8 juillet 2009 Statut Membre Dernière intervention 27 août 2010 1
11 juil. 2009 à 19:36
merci pour votre aide
0
Rejoignez-nous