Componentes Swing
Componentes de la librería Swing
A continuación se listan distintos ejemplos de la implementación de algunos de los componentes de Swing más utilizados.
JTextField
Caja de texto básica, equivalente a input text en PHP.
JTextField input;private void inputText(){input = new JTextField();input.setBounds(10,10,200,50);panel.add(input);}
JRadioButton
Radiobotón es una caja de marcado similar al JCheckBox pero que suele permitir una sola opción marcada, equivalente a input radio en PHP.
JRadioButton radioH;JRadioButton radioM;private void inputRadio("H"){radioH = new JRadioButton();radioH.setBounds(10,10,200,50);radioH.setSelected(true);panel.add(radioH);radioM = new JRadioButton();radioM.setBounds(10,100,200,50);panel.add(radioM);}
Para poder elegir solo una opción es necesario añadirlo manualmente mediante ActionListener (como se realiza en el código siguiente) o mediante un grupo de botones (como se realiza en el código de ejemplo final del JMenu) permitiendo desactivar las opciones que pudieran encontrarse ya marcadas.
JRadioButton radioH;JRadioButton radioM;private void inputRadio("H"){radioH = new JRadioButton();radioH.setBounds(10,10,200,50);radioH.setSelected(true);panel.add(radioH);radioM = new JRadioButton();radioM.setBounds(10,100,200,50);panel.add(radioM);radioH.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(radioH.isSelected()){radioM.setSelected(false);}}});radioM.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){if(radioM.isSelected()){radioH.setSelected(false);}}});}
También puede ser útil restringir la opción de desmarcar las opciones. Para ello es suficiente con añadir un else a los ActionListener, de esta forma se sigue mateniendo siempre marcada la opción seleccionada.
radioH.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(radioH.isSelected()){radioM.setSelected(false);}else{radioH.setSelected(true);}}});radioM.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){if(radioM.isSelected()){radioH.setSelected(false);}else{radioM.isSelected(true);}}});}
JCheckBox
Cajas de marcado, equivalente a un input checkbox en PHP.
private void checkBox(){caja1 = new JCheckBox("USB");caja1.setBounds(10,10,240,50);this.add(caja1);caja2 = new JCheckBox("TV LCD");caja2.setBounds(10,110,240,50);this.add(caja2);caja3 = new JCheckBox("Cepillo eléctrico");caja3.setBounds(10,210,240,50);this.add(caja3);}
JTextArea
Caja de texto con opción de scroll, equivalente a textarea en PHP.
private void textArea(){JTextArea text = new JTextArea();text.setEditable(true);text.setBounds(10,10,620,360);this.add(text);//opción básica/*JScrollPane jsp = new JScrollPane(text);jsp.setBounds(10,10,620,360);jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);this.add(jsp);*///opción simplificadaJScrollPane jsp = new JScrollPane(text, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);jsp.setBounds(10,10,620,360);this.add(jsp);JButton boton = new JButton("Coger el contenido");boton.setBounds(10,400,620,50);this.add(boton);boton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){String s = "";s += text.getText();System.out.println(s);}});}
JComboBox
Menú desplegable , equivalente a un select en PHP
public void comboBox(){String elementos[]={"USB","TV LCD","Cepillo eléctrico","Batidora","Exprimidor","Secador","Altavoces"};JComboBox combo = new JComboBox(elementos);combo.setBounds(10,10,620,50);this.add(combo);JButton boton = new JButton("Mostrar selección");boton.setBounds(10,100,300,50);this.add(boton);boton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){System.out.println(combo.getSelectedItem());}});}
JPasswordField
Caja de texto oculto, equivalente a un input hidden en PHP.
public void passwordField(){JPasswordField pass = new JPasswordField();pass.setBounds(10, 10,620,50);this.add(pass);JButton boton= new JButton("Ver contenido del JComboBox");boton.setBounds(10,100,200,50);this.add(boton);boton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e){System.out.println(pass.getPassword());}});}
JMenuBar
Barra de menú que permite incorporar elementos, normalmente menús desplegables, presente en la mayoría de programas, generalmente de forma fija y el parte superior de la ventana.
JMenuBar menubar = new JMenuBar();this.setJMenuBar(menubar);
JMenu
Botón integrado en la barra de menú que permite desplegar un elemento o conjunto de elementos denominados items.
JMenu menu = new JMenu("Menu");menubar.add(menu);
JMenuItem
Un item es uno de los elementos que componen un menú, similar a un botón, que permiten realizar una acción, normalmente una opción o función del programa.
JMenuItem itemArchivo = new JMenuItem("Archivo");menu.add(itemArchivo);
A continuación un ejemplo de una barra de menú básica que contiene distintos tipos de items.
package cartelera;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.BoxLayout;import javax.swing.ButtonGroup;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JRadioButtonMenuItem;public class menu extends JFrame {private JPanel panel;private int size_x = 480, size_y = 640;public menu(){this.setTitle("Cartelera de cine");this.setSize(size_x,size_y);this.setDefaultCloseOperation(EXIT_ON_CLOSE);initComponents();}public void initComponents(){//barra de menúJMenuBar menubar = new JMenuBar();this.setJMenuBar(menubar);//menu 1JMenu menu = new JMenu("Menu");menubar.add(menu);//item de menu 1JMenuItem itemArchivo = new JMenuItem("Archivo");menu.add(itemArchivo);//separadormenu.addSeparator();//item de menu 1JMenuItem itemSalir = new JMenuItem("Salir");menu.add(itemSalir);itemSalir.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {System.exit(0);}});//menu 2JMenu menu2 = new JMenu("Menú 2");//submenuJMenu submenu = new JMenu("Submenú");menu2.add(submenu);//itemsJMenuItem item = new JMenuItem("item1");JMenuItem item2 = new JMenuItem("item2");//check itemsJCheckBoxMenuItem item3 = new JCheckBoxMenuItem("item3-check");//radio itemsJRadioButtonMenuItem item4 = new JRadioButtonMenuItem("item4-radio");JRadioButtonMenuItem item5 = new JRadioButtonMenuItem("item5-radio");ButtonGroup grupo = new ButtonGroup();grupo.add(item4);grupo.add(item5);submenu.add(item);submenu.add(item2);submenu.add(item3);submenu.add(item4);//separadorsubmenu.addSeparator();submenu.add(item5);menubar.add(menu2);//panelpanel = new JPanel();panel.setBackground(Color.white);panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));this.add(panel);}public static void main(String[] args) {menu c = new menu();c.setVisible(true);}}
Para poder comentar es necesario iniciar sesión