Je veux ouvrir une image en java et l'afficher.
andresgc12 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux ouvrir une image en java et l'afficher.
comment ouvrir une image après l'avoir sélectionnée?
Voici mon code:
import java.awt.Desktop; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import java.io.FileReader; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.filechooser.FileNameExtensionFilter; public class Fenêtre extends JFrame implements ActionListener { public Fenêtre() { super("fENETRE"); setSize(300,200); pack(); setVisible(true); { JFrame frame = new JFrame("Hello World"); JPanel panel = new JPanel(); BufferedImage image = null; // Définir le menu principal JMenuBar menu = new JMenuBar(); JMenu file = new JMenu("Fichir"); JMenu edit = new JMenu("Edition"); JMenu help = new JMenu("Aide"); // Définir le sous-menu pour Fichier JMenuItem newf = new JMenuItem("Nouveau"); JMenuItem ouvrir = new JMenuItem("Ouvrir"); ouvrir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { File[] selectedFiles = null; JFileChooser chooser = new JFileChooser("."); chooser.showOpenDialog(null); chooser.setCurrentDirectory(new File(".")); chooser.setMultiSelectionEnabled(true); int option = chooser.showOpenDialog(null); if (option == JFileChooser.APPROVE_OPTION) selectedFiles = chooser.getSelectedFiles(); try { BufferedImage imagenAbrir = ImageIO.read(chooser.getSelectedFile()); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }} ); JMenuItem save = new JMenuItem("Enregistrer"); file.add(newf); file.add(save); file.add(ouvrir); menu.add(file); menu.add(edit); menu.add(help); frame.setLayout(new GridLayout(5, 1)); frame.add(menu); frame.add(panel); frame.pack(); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } public static void main(String[] args) { new Fenêtre(); } public void actionPerformed(ActionEvent e) { System.out.print("test"); } }
- Import image java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Bonjour,
J'ai adapté ton code pour lire et afficher une image, j'en ai profité pour corriger quelques bugs :
package ccm.kx; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.io.File; import java.io.IOException; public class Fenetre { public Fenetre() { JFrame frame = new JFrame("Hello World"); // Définir le menu principal JMenuBar menu = new JMenuBar(); JMenu file = new JMenu("Fichir"); JMenu edit = new JMenu("Edition"); JMenu help = new JMenu("Aide"); // Définir le sous-menu pour Fichier JMenuItem newf = new JMenuItem("Nouveau"); JMenuItem ouvrir = new JMenuItem("Ouvrir"); JFileChooser chooser = new JFileChooser("."); Component imageComponent = new Component() { @Override public void paint(Graphics g) { super.paint(g); try { File selectedFile = chooser.getSelectedFile(); if (selectedFile != null && selectedFile.exists()) { Image image = ImageIO.read(selectedFile); setSize(image.getWidth(this), image.getHeight(this)); g.drawImage(image, 0, 0, this); } } catch (IOException e1) { e1.printStackTrace(); } } }; ouvrir.addActionListener(e -> { chooser.setCurrentDirectory(new File(".")); int option = chooser.showOpenDialog(null); if (option == JFileChooser.APPROVE_OPTION) { imageComponent.repaint(); } }); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.add(imageComponent, BorderLayout.CENTER); JMenuItem save = new JMenuItem("Enregistrer"); file.add(newf); file.add(save); file.add(ouvrir); menu.add(file); menu.add(edit); menu.add(help); frame.add(menu, BorderLayout.NORTH); frame.add(panel, BorderLayout.CENTER); frame.setSize(600, 600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } public static void main(String[] args) { new Fenetre(); } }
Bonjour, merci de ta réponse. En fait, il y a des erreurs quand j'ai copié ton code, mais j'ai corriger les erreurs, sauf que ça fonctionne pas. Voici mon code:
import java.awt.Component;
import java.awt.Desktop;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;
public class Fenêtre extends JFrame implements ActionListener {
public Fenêtre() {
super("fENETRE");
setSize(300,200);
pack();
setVisible(true);
{
JFrame frame = new JFrame("Hello World");
JPanel panel = new JPanel();
BufferedImage image = null;
// Définir le menu principal
JMenuBar menu = new JMenuBar();
JMenu file = new JMenu("Fichir");
JMenu edit = new JMenu("Edition");
JMenu help = new JMenu("Aide");
// Définir le sous-menu pour Fichier
JMenuItem newf = new JMenuItem("Nouveau");
JMenuItem ouvrir = new JMenuItem("Ouvrir");
final Component imageComponent = new Component() {
public void paint(Graphics g) {
super.paint(g);
try {
JFileChooser chooser = new JFileChooser(".");
File selectedFile = chooser.getSelectedFile();
if (selectedFile != null && selectedFile.exists()) {
Image image = ImageIO.read(selectedFile);
setSize(image.getWidth(this), image.getHeight(this));
g.drawImage(image, 0, 0, this);
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
};
ouvrir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
File[] selectedFiles = null;
JFileChooser chooser = new JFileChooser(".");
chooser.showOpenDialog(null);
chooser.setCurrentDirectory(new File("."));
int option = chooser.showOpenDialog(null);
if (option == JFileChooser.APPROVE_OPTION) {
imageComponent.repaint();
}
}}
);
JMenuItem save = new JMenuItem("Enregistrer");
file.add(newf);
file.add(save);
file.add(ouvrir);
menu.add(file);
menu.add(edit);
menu.add(help);
frame.setLayout(new GridLayout(5, 1));
frame.add(menu);
frame.add(panel);
frame.pack();
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
public static void main(String[] args) {
new Fenêtre();
}
}
En fait, il y a des erreurs quand j'ai copié ton code, mais j'ai corriger les erreurs, sauf que ça fonctionne pas.
Mon code fonctionne, je l'ai testé, si tu as des erreurs il faudrait savoir lesquelles (tu utilises une ancienne version de Java peut être ?)
Si tu "corriges" les erreurs (d'un programme qui fonctionne...) et que tu as toujours des erreurs, c'est que c'est mal corrigé.