Je veux ouvrir une image en java et l'afficher.
Ferméandresgc12 Messages postés 3 Date d'inscription jeudi 19 janvier 2023 Statut Membre Dernière intervention 28 janvier 2023 - 28 janv. 2023 à 20:13
- Import image java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Image iso - Guide
- Jeux java itel touche ✓ - Forum Logiciels
3 réponses
20 janv. 2023 à 18:36
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(); } }
20 janv. 2023 à 20:10
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();
}
}
21 janv. 2023 à 07:53
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é.
28 janv. 2023 à 20:13
Merci,. Le prolblème était la version de java