Social

lunes, 13 de enero de 2014

Java: Menu con swing.

En java se pueden utilizar los elementos gráficos de swing para crear menús, con la clase JMenu, con una gran cantidad de elementos diferentes. En el siguiente ejemplo se mostrara como hacer menús y agregarles elementos con funcionalidad básica. Dentro de el menú se pueden observar checkbox, radiobuttons, etc.
Se debe agregar un ActionListener a cada elemento de los menús para darles funcionalidad. Aca se puede observar el código para realizar el menú del ejemplo:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
public class MenuExample extends JFrame {
JLabel jLabel;
private void perpararUI() {
jLabel = new JLabel("Elemento", JLabel.CENTER);
getContentPane().add(jLabel);
JMenuBar jMenuBar = new JMenuBar();
JMenu menuFile = new JMenu("Archivo");
menuFile.setMnemonic(KeyEvent.VK_F);
jMenuBar.add(menuFile);
JMenu menuOption = new JMenu("Opciones");
menuOption.setMnemonic(KeyEvent.VK_P);
jMenuBar.add(menuOption);
//MenuItem Nuevo, Abrir, Guardar abajo de File
JMenuItem menuItemNew = new JMenuItem("Nuevo", KeyEvent.VK_N);
menuFile.add(menuItemNew);
JMenuItem menuItemOpen = new JMenuItem("Abrir", KeyEvent.VK_O);
menuFile.add(menuItemOpen);
JMenuItem menuItemSave = new JMenuItem("Guardar", KeyEvent.VK_S);
menuFile.add(menuItemSave);
//CheckBox A, B, C bajo opciones
JCheckBoxMenuItem jCheckBoxMenuItem_A = new JCheckBoxMenuItem("Check A");
jCheckBoxMenuItem_A.setMnemonic(KeyEvent.VK_A);
menuOption.add(jCheckBoxMenuItem_A);
JCheckBoxMenuItem jCheckBoxMenuItem_B = new JCheckBoxMenuItem("Check B");
jCheckBoxMenuItem_B.setMnemonic(KeyEvent.VK_B);
menuOption.add(jCheckBoxMenuItem_B);
JCheckBoxMenuItem jCheckBoxMenuItem_C = new JCheckBoxMenuItem("Check C");
jCheckBoxMenuItem_C.setMnemonic(KeyEvent.VK_C);
menuOption.add(jCheckBoxMenuItem_C);
menuOption.addSeparator();
//Crear ButtonGroup para los radio button D, E, F
ButtonGroup buttonGroup = new ButtonGroup();
JRadioButtonMenuItem jRadioButtonMenuItem_D = new JRadioButtonMenuItem("Opcion D", true);
jRadioButtonMenuItem_D.setMnemonic(KeyEvent.VK_D);
menuOption.add(jRadioButtonMenuItem_D);
buttonGroup.add(jRadioButtonMenuItem_D);
JRadioButtonMenuItem jRadioButtonMenuItem_E = new JRadioButtonMenuItem("Opcion E");
jRadioButtonMenuItem_E.setMnemonic(KeyEvent.VK_E);
menuOption.add(jRadioButtonMenuItem_E);
buttonGroup.add(jRadioButtonMenuItem_E);
JRadioButtonMenuItem jRadioButtonMenuItem_F = new JRadioButtonMenuItem("Opcion F");
jRadioButtonMenuItem_F.setMnemonic(KeyEvent.VK_F);
menuOption.add(jRadioButtonMenuItem_F);
buttonGroup.add(jRadioButtonMenuItem_F);
setJMenuBar(jMenuBar);
ActionListener menuActionListener = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
jLabel.setText(e.getActionCommand());
}
};
//Agregar ActionListener
menuItemNew.addActionListener(menuActionListener);
menuItemOpen.addActionListener(menuActionListener);
menuItemSave.addActionListener(menuActionListener);
jCheckBoxMenuItem_A.addActionListener(menuActionListener);
jCheckBoxMenuItem_B.addActionListener(menuActionListener);
jCheckBoxMenuItem_C.addActionListener(menuActionListener);
jRadioButtonMenuItem_D.addActionListener(menuActionListener);
jRadioButtonMenuItem_E.addActionListener(menuActionListener);
jRadioButtonMenuItem_F.addActionListener(menuActionListener);
}
private static void crearGUI() {
MenuExample myFrame = new MenuExample();
myFrame.setTitle("javainutil.blogspot.com");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(400, 300);
myFrame.perpararUI();
myFrame.setVisible(true);
}
public static void main(String[] args) {
crearGUI();
}
}
view raw Menu.java hosted with ❤ by GitHub

1 comentario :