Ola pessoal, poderiam me ajudar, por favor.
Eu fiz um JMenuBar através de um um método que usa um loop e usa um vetor de String para colocar o texto no JMenuItem, eu não sei se é a melhor pratica mas é que o anterior que eu fiz tinha ficado enorme, fiz dessa forma para diminuir. Porém, eu não sei como colocar ação no JMenuItem, me ajudem?
Eu tentei fazer como o normal que seria o getSource(), mas não funciona.
Eu tentei usar o getSelectItem()
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.WindowConstants;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class principal1 extends JFrame{
private String[] nomeMenu = {"New", "Open", "Exit", "Copy", "Paste", "Delete"};
JMenu file = new JMenu("File");
JMenu edit = new JMenu("Edit");
public principal1() {
super();
initialize();
}
private void initialize(){
this.setTitle("Aplicação com menu");
this.setJMenuBar(barMenu());
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public JMenuBar barMenu(){
JMenuBar barraMenu = new JMenuBar();
for(int i = 0; i < nomeMenu.length; i++){
if(i >= 0 && i <= 2){
JMenuItem mnuFile = new JMenuItem("",KeyEvent.VK_T);
mnuFile.setText(nomeMenu[i]);
mnuFile.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent evt) {
}
});
file.add(mnuFile);
barraMenu.add(file);
}
else{
JMenuItem mnuEdit = new JMenuItem("",KeyEvent.VK_T);
mnuEdit.setText(nomeMenu[i]);
mnuEdit.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent evt) {
}
});
edit.add(mnuEdit);
barraMenu.add(edit);
}
}
return barraMenu;
}
public static void main(String[] args) {
new principal1();
}
}
Consegui fazer de um jeito pessoal, mas caso vocês tenham uma mais eficiente e puder compartilhar, ficarei grato. \o
public JMenuBar barMenu(){
JMenuBar barraMenu = new JMenuBar();
for(int i = 0; i < nomeMenu.length; i++){
if(i >= 0 && i <= 2){
JMenuItem mnuFile = new JMenuItem("",KeyEvent.VK_T);
mnuFile.setText(nomeMenu[i]);
mnuFile.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if(nomeMenu[0] == mnuFile.getText()){
System.out.println("deu certo "+nomeMenu[0]);
}else if (nomeMenu[1] == mnuFile.getText()){
System.out.println("deu certo "+ nomeMenu[1]);
}else{
System.exit(0);
}
}
});
file.add(mnuFile);
barraMenu.add(file);
}
else{
JMenuItem mnuEdit = new JMenuItem("",KeyEvent.VK_T);
mnuEdit.setText(nomeMenu[i]);
mnuEdit.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent evt) {
}
});
edit.add(mnuEdit);
barraMenu.add(edit);
}
}
return barraMenu;
}