IHM: bouton annuler ? importer une photo ?
linquisiteur
-
linquisiteur -
linquisiteur -
Bonjour, pour me préparer à ma 2eme année d'informatique j'essaie de prendre de l'avance sur la matière (et m'occuper). Mon projet est simple. Créer une IHM où l'on peut simplement créer et enregistrer des diaporamas personnalisé afin de pouvoir les revoir par la suite en ouvrant ce programme.
le code:
Pour le moment je suis confronté à deux problèmes.
1)
Dans la fonction: private void CreateDiapo()
le programme demande à l'utilisateur d'entrée un nom de dossier (qui se créer j'ai vérifier)
mais il peut aussi annuler lorsque la balise lui demande. Lors ce que il annule la demande de nom j'ai plusieurs erreur dans la console (mais aucun crash apparent dans le programme) Mais je n'aime pas laisser cette erreur.
Existe t'il une méthode simple pour vérifier que le dossier n'existe pas encore?
2)
J'aimerais importer des photos mais comment faire?
j'ai cru comprendre avec l'objet: JFileChooser mais je n'arrive pas à l'intégrer (aucun bon effet).
De plus je ne sais pas si il est préférable de copier les images importer où garder leur localisation en mémoire(dans un fichier).
Merci d'avance :)
le code:
package diaporama; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.KeyStroke; public class Fenetre extends JFrame{ private JMenuBar menuBar = new JMenuBar(); private JMenu menuFichier = new JMenu("Fichier"), menuEdition = new JMenu("Edition"), sousMenuVitesse = new JMenu("Vitesse"), menuInfo = new JMenu("À propos"); private JMenuItem itemNewDiapo = new JMenuItem("Nouveau"), itemOuvrir = new JMenuItem("Ouvrir"), itemFermer = new JMenuItem("Fermer"), itemLancer = new JMenuItem("Lancer"), itemQuitter = new JMenuItem("Quitter"), itemStop = new JMenuItem("Arrêter"), itemInfo = new JMenuItem("?"); ButtonGroup bg = new ButtonGroup(); private JRadioButton jcmiVitLente = new JRadioButton("Lente"), jcmiVitNormal = new JRadioButton("Normal"), jcmiVitRapide = new JRadioButton("Rapide"); public Fenetre(){ this.setTitle("Diaporama"); this.setSize(1200, 800); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); JPanel pan = new JPanel(); pan.setBackground(Color.DARK_GRAY); this.setContentPane(pan); // On initialise nos menus // Menu Fichier itemNewDiapo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent argo0){ CreateDiapo(); } }); this.menuFichier.add(itemNewDiapo); this.menuFichier.add(itemOuvrir); this.menuFichier.add(itemQuitter); // Ajout d'un séparateur this.menuFichier.addSeparator(); itemFermer.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); this.menuFichier.add(itemFermer); // Menu Edition // on met les bouttons radio dans un buttonGroup pour limiter a 1 actif jcmiVitNormal.setSelected(true); bg.add(jcmiVitLente); bg.add(jcmiVitNormal); bg.add(jcmiVitRapide); // On ajoute les éléments dans notre sous-menu this.sousMenuVitesse.add(jcmiVitLente); this.sousMenuVitesse.add(jcmiVitNormal); this.sousMenuVitesse.add(jcmiVitRapide); // Ajout du sous-menu dans notre menu this.menuEdition.add(itemLancer); this.menuEdition.add(itemStop); this.menuEdition.add(this.sousMenuVitesse); // Menu Info this.menuInfo.add(itemInfo); itemInfo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { fenetreInfo(); } }); // Ajout des menus dans la barre de menus et ajout de mnémoniques ! // L'ordre d'ajout va déterminer l'ordre d'apparition dans le menu de gauche à droite // Le premier ajouté sera tout à gauche de la barre de menu et inversement pour le dernier itemLancer.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, KeyEvent.CTRL_MASK)); itemStop.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK)); itemFermer.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_MASK)); itemNewDiapo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK)); itemOuvrir.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_MASK)); itemQuitter.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_MASK)); menuFichier.setMnemonic('F'); this.menuBar.add(menuFichier); menuEdition.setMnemonic('E'); this.menuBar.add(menuEdition); menuInfo.setMnemonic('P'); this.menuBar.add(menuInfo); this.setJMenuBar(menuBar); this.setVisible(true); } private void CreateDiapo(){ boolean nomOk = true; System.out.println("test1"); String nom = JOptionPane.showInputDialog(null, "Nom du diaporama: (entre 1 et 20 charactère, sans espace)", "Nouveau diaporama", JOptionPane.QUESTION_MESSAGE); if(nom.length()<=20 && nom.length()>0){ for(int i=0;i<nom.length() && nomOk == true;i++){ if(nom.charAt(i)==' ') nomOk = false; System.out.println(i); } }else nomOk = false; System.out.println("test2"); if(nomOk){ boolean outOk = true; // on ajoute le nom de la diapo à la liste des dossiers diaporama try { FileWriter fOut = new FileWriter("listeDiaporama.txt", true); PrintWriter pOut = new PrintWriter(fOut); for(int i=0;i<20;i++){ if(i < nom.length()){ pOut.print(nom.charAt(i)); }else{ pOut.print(' '); } } fOut.close(); pOut.close(); } catch (FileNotFoundException e) { e.printStackTrace(); outOk = false; } catch (IOException e) { e.printStackTrace(); outOk = false; } // si le dosier n'a pas pu être créé if(outOk == false) JOptionPane.showMessageDialog(null, "Problème lors de la création du dossier" + nom, "Erreur ", JOptionPane.ERROR_MESSAGE); else{ new File(nom).mkdir(); } } } public void fenetreInfo(){ String info = "Programme créer par Jordan M.\n"; info += "Le but est de me familiariser avec les IHMs."; JOptionPane.showMessageDialog(null, info, "Informations", JOptionPane.INFORMATION_MESSAGE); } }
Pour le moment je suis confronté à deux problèmes.
1)
Dans la fonction: private void CreateDiapo()
le programme demande à l'utilisateur d'entrée un nom de dossier (qui se créer j'ai vérifier)
mais il peut aussi annuler lorsque la balise lui demande. Lors ce que il annule la demande de nom j'ai plusieurs erreur dans la console (mais aucun crash apparent dans le programme) Mais je n'aime pas laisser cette erreur.
Existe t'il une méthode simple pour vérifier que le dossier n'existe pas encore?
2)
J'aimerais importer des photos mais comment faire?
j'ai cru comprendre avec l'objet: JFileChooser mais je n'arrive pas à l'intégrer (aucun bon effet).
De plus je ne sais pas si il est préférable de copier les images importer où garder leur localisation en mémoire(dans un fichier).
Merci d'avance :)
A voir également:
- IHM: bouton annuler ? importer une photo ?
- Code ihm non valide free ✓ - Forum Xiaomi
- حل مشكلة code ihm non valide - Forum LG
- Code IHM - Forum LG
- Ihm terminé - Forum Windows
- Code ihm non valide maroc telecom - Forum Réseau