Social

jueves, 16 de enero de 2014

Java: Convertir double a long.

Muchas veces no es necesario convertir en java una variable del tipo double a long. Para realizar esto existen varias formas, pero se mostraran las mas sencillas. Para hacerlo se puede simplemente castear o utilizar el método round como se ve en el siguiente script:
public class Utils {
public static void main(String[] args) {
//Trunca los decimales.
double d = 1234.56;
long x = (long) d;
System.out.println(x);
//Redondea los decimales
d = 1234.56;
x = Math.round(d);
System.out.println(x);
}
}

Si se castea simplemente se truncaran los decimales. Si se utiliza el método round utilizará técnicas de redondeo. El código anterior devolvería lo siguiente:
1234
1235

lunes, 13 de enero de 2014

Java: Popup con swing.

Entre las utilidades de la librería swing de java existe la de JPopup. Esta clase nos permite crear un panel emergente o pop up al cual se le pueden agregar JMenuItem y realizar acciones dependiendo de la selección. Aquí un ejemplo de como se ve:
Para realizar el ejemplo anterior se puede utilizar el siguiente código:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
public class PopupExample extends JFrame {
JLabel jLabel;
JPopupMenu jPopupMenu;
private void prepararUI() {
jLabel = new JLabel("Elemento", JLabel.CENTER);
getContentPane().add(jLabel);
//Le agregamos los elementos al Popup
jPopupMenu = new JPopupMenu();
JMenuItem jMenuItem_A = new JMenuItem("Menu Item A");
JMenuItem jMenuItem_B = new JMenuItem("Menu Item B");
JMenuItem jMenuItem_C = new JMenuItem("Menu Item C");
jPopupMenu.add(jMenuItem_A);
jPopupMenu.add(jMenuItem_B);
jPopupMenu.add(jMenuItem_C);
jMenuItem_A.addActionListener(menuActionListener);
jMenuItem_B.addActionListener(menuActionListener);
jMenuItem_C.addActionListener(menuActionListener);
addMouseListener(myMouseAdapter);
}
//Creamos un MouseAdapter para controlar cuando mostrar el popup.
MouseAdapter myMouseAdapter = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
jPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
jPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
};
ActionListener menuActionListener = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
jLabel.setText(e.getActionCommand());
}
};
private static void crearGUI() {
PopupExample myFrame = new PopupExample();
myFrame.setTitle("javainutil.blogspot.com");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(400, 300);
myFrame.prepararUI();
myFrame.setVisible(true);
}
public static void main(String[] args) {
crearGUI();
}
}
view raw Popup.java hosted with ❤ by GitHub

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