Code java sur l'interface graphique

Signaler
Messages postés
174
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
22 avril 2012
-
 naimahonaik -
Bonjour, j'ai créer une interface graphique qui importe une image et faire tel option sur cette image ( traitement ).
mais je sait pas le code qui me permet de zoomer l'image / et de changer le niveau de gris.

import java.io.File;
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;

import javax.swing.filechooser.FileFilter;



public class essai extends JFrame {
private JMenuBar barre = new JMenuBar();
private JMenu édition = new JMenu("Edition");
private JMenu fichier = new JMenu("Fichier");
private JLabel image = new JLabel();

public essai() {
super();
setJMenuBar(barre);
barre.add(fichier);
// Definition de l'elelment Nouveau de menu fichier
fichier.add(new Option("Nouveau", 'X', "Nouveau fichier")).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
essai.this.setTitle("Nouveau document");
}
});
// Definition de l'elelment ouvrir de menu fichier
fichier.add(new Option("Ouvrir", 'C', "Ouvrir un fichier")).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser sélecteur = new JFileChooser();
sélecteur.setFileFilter(new Filtre());
if (sélecteur.showDialog(essai.this, "Sélectionner votre image")==JFileChooser.APPROVE_OPTION) {
File fichier = sélecteur.getSelectedFile();
setTitle(fichier.getPath());
image.setIcon(new ImageIcon(fichier.getPath()));
}
}
});

// Definition de l'elelment Quitter de menu fichier
fichier.addSeparator(); // Séparateur entre deux sous menu
fichier.add(new Option("Quitter", 'X', "Quitter le fichier")).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// interface de confirmation
if (JOptionPane.showConfirmDialog(essai.this, "Désirez-vous quitter l'application ?")== JOptionPane.YES_OPTION)
System.exit(0);
}
});
barre.add(édition);
[b]// Zoomer une image
édition.add(new Option("Zoomer", 'Z', "zoomer une image ")).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {


//aider moi a faire ce code qui fait zoomer / retailler d'une image

}
});/b
[b]// Zoomer une image
édition.add(new Option("Noir/Blanc", 'Z', "rendre l'image Binaire")).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {


// aider moi a faire le code qui rendre l'image Binaire

}
});/b


add(new JScrollPane(image));
setTitle("Traitement d'Images");
setSize(800, 700);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);

}

private class Option extends JMenuItem {
public Option(String intitulé, char raccourci, String aide) {
super(intitulé, new ImageIcon(intitulé.toLowerCase()+".gif"));
setAccelerator(KeyStroke.getKeyStroke("control "+raccourci));
setToolTipText(aide);
}
}
// Classe FileGIF gerer l'extension de fichier
private class Filtre extends FileFilter {
@Override
public boolean accept(File fichier) {
return fichier.getName().toLowerCase().endsWith(".gif") || fichier.isDirectory();
}

@Override
public String getDescription() {
return "Images GIF";
}
}
public static void main (String args[]) { new essai(); }
}


er Merci,

1 réponse

salut voici le code qui vous permettez de faire un zoom arriéré et un zoom avant :

dans mon code j'ai utilise dans l'interface, 2 "JButton"
private void zoomMoinsActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (imageDejaOuverte){
if(quantiteZoom>1) {quantiteZoom--;}
else {if (quantiteZoom>0.25){
quantiteZoom-=0.25;
}}
wa=(int) (w*quantiteZoom);
ha=(int) (h*quantiteZoom);

i2=i.getScaledInstance(wa, ha, java.awt.Image.SCALE_SMOOTH);
icone = new ImageIcon( i2 );
label = new JLabel( icone );
label2 = label;
jScrollPane1.getViewport().add( label );
}
}

private void zoomPlusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(imageDejaOuverte){
if (quantiteZoom<=1){
quantiteZoom+=1;
}

wa=(int) (w*quantiteZoom);
ha=(int) (h*quantiteZoom);
jSlider1.createImage(wa, ha);
i2=i.getScaledInstance(wa, ha, java.awt.Image.SCALE_SMOOTH);
icone = new ImageIcon( i2 );
label = new JLabel( icone );
jScrollPane1.getViewport().add( label );

}

}