I'm trying to open an image when the user clicks a certain button in my JMenu. I have to configure the m5 and m6 from this code:
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Menu extends JMenuBar implements ActionListener {
Interface map;
JMenu m1;
JMenu m2;
JMenu m3;
JMenu m4;
JMenu m5;
JMenu m6;
JMenuItem m12;
JMenuItem m121;
JMenuItem m122;
JMenuItem m123;
JMenuItem m222;
JMenuItem m331;
JMenuItem m332;
JMenuItem m441;
JMenuItem m442;
JMenuItem m551;
JMenuItem m661;
public Menu(Interface map) {
super();
this.map = map;
m1 = new JMenu("Nouvelle grille");
m2 = new JMenu("Solutionner");
m3 = new JMenu("Générer une grille");
m4 = new JMenu("Fonctions supplémentaires");
m5 = new JMenu("Edition");
m6 = new JMenu("Aide");
m121 = new JMenuItem("Niveau fort");
m122 = new JMenuItem("Niveau moyen");
m123 = new JMenuItem("Niveau faible");
m12 = new JMenuItem("Sélectionner dans une liste");
m121.addActionListener(this);
m122.addActionListener(this);
m123.addActionListener(this);
m12.addActionListener(this);
m222 = new JMenuItem("Vider la Grille");
m222.addActionListener(this);
m1.add(m222);
m331 = new JMenuItem("Afficher la solution");
m331.addActionListener(this);
m2.add(m331);
m332 = new JMenuItem("Cacher la solution");
m332.addActionListener(this);
m2.add(m332);
m332.setEnabled(false);
m441 = new JMenuItem("Copier grille dans le presse-papier");
m441.addActionListener(this);
m4.add(m441);
m442 = new JMenuItem("Imprimer Grille+Solution");
m442.addActionListener(this);
m4.add(m442);
m551 = new JMenuItem("Annuler déplacement");
m551.addActionListener(this);
m5.add(m551);
m661 = new JMenuItem("Règlements");
m661.addActionListener(this);
m6.add(m661);
m3.add(m121);
m3.add(m122);
m3.add(m123);
m3.addSeparator();
m3.add(m12);
this.add(m1);
this.add(m2);
this.add(m3);
this.add(m4);
this.add(m5);
this.add(m6);
}
public void actionPerformed(ActionEvent evt) {
map.ecouteur.carre = null;
if (evt.getSource() == m121) {
// map.cherchernouvellesgrilles();
map.supanel.selection(3);
} else if (evt.getSource() == m122) {
// map.testersinouvellegrille();
map.supanel.selection(2);
} else if (evt.getSource() == m123) {
map.supanel.selection(1);
} else if (evt.getSource() == m222) {
map.supanel.vidergrille();
// map.supanel.cherchernouvellesgrilles();
} else if (evt.getSource() == m331) {
if (map.supanel.solutionnergrille()) {
m331.setEnabled(false);
m332.setEnabled(true);
}
} else if (evt.getSource() == m332) {
map.supanel.cachersolution();
m331.setEnabled(true);
m332.setEnabled(false);
} else if (evt.getSource() == m661) {
// Image Should Be Here
m661.setEnabled(true);
}
else if (evt.getSource() == m441) {
if (map.getSudoku().getTableaufinal() != null) {
ecriturepressepapier(map.getSudoku().getTableaufinal());
} else {
ecriturepressepapier(map.getSudoku().getGrille());
}
}
else if (evt.getSource() == m442) {
JFrame frame = new JFrame("Aperçu avant Impression");
frame.setSize(new Dimension(305, 640));
Fond supanelreponse1 = new Fond(map.map, map);
Fond supanelreponse2 = new Fond(map.map, map);
supanelreponse1.impressionapartirdetableau(map.sudoku.grille);
if (map.supanel.solutionnergrille()) {
System.out.println("GRILLE");
map.sudoku.afficher(map.sudoku.grille);
System.out.println("REPONSE");
map.sudoku.afficher(map.sudoku.tableaufinal);
supanelreponse2
.impressionapartirdetableau(map.sudoku.tableaufinal);
// CONTENTPANEL
JPanel contentPanel = (JPanel) frame.getContentPane();
contentPanel.setLayout(null);
supanelreponse1.setBounds(0, 0, 300, 300);
contentPanel.add(supanelreponse1);
supanelreponse2.setBounds(0, 301, 300, 300);
contentPanel.add(supanelreponse2);
frame.setContentPane(contentPanel);
frame.setVisible(true);
MPanelPrinter mp = new MPanelPrinter(contentPanel);
mp.print();
map.supanel.cachersolution();
frame.dispose();
}
}
map.requestFocus();
}
public void ecriturepressepapier(int[][] tableau) {
String temp = "";
for (int i = 0; i < tableau.length + 2; i++) {
temp += "#";
}
temp += "\n";
for (int i = 0; i < tableau.length; i++) {
temp += "#";
for (int e = 0; e < tableau[i].length; e++) {
if (tableau[i][e] != 0) {
temp += Integer.toString(tableau[i][e]);
} else {
temp += " ";
}
}
temp += "#\n";
}
for (int i = 0; i < tableau.length + 2; i++) {
temp += "#";
}
map.getMpp().setClipboardContents(temp);
}
}
For example, when the user clicks on the m6 JMenu, an image have to open. I guess that I have to insert the code at this place :
else if(evt.getSource()==m661){
// Image Should Be Here
m661.setEnabled(true);
}
I can't understand how to do it and I'd like to know what are the map.supanel things? It's seems that the action is triggered by them but I can't understand where they come from.
Thanks a lot!