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 simplificada
JScrollPane 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() {
@Override
public 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 1
JMenu menu = new JMenu("Menu");
menubar.add(menu);
//item de menu 1
JMenuItem itemArchivo = new JMenuItem("Archivo");
menu.add(itemArchivo);
//separador
menu.addSeparator();
//item de menu 1
JMenuItem itemSalir = new JMenuItem("Salir");
menu.add(itemSalir);
itemSalir.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//menu 2
JMenu menu2 = new JMenu("Menú 2");
//submenu
JMenu submenu = new JMenu("Submenú");
menu2.add(submenu);
//items
JMenuItem item = new JMenuItem("item1");
JMenuItem item2 = new JMenuItem("item2");
//check items
JCheckBoxMenuItem item3 = new JCheckBoxMenuItem("item3-check");
//radio items
JRadioButtonMenuItem 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);
//separador
submenu.addSeparator();
submenu.add(item5);
menubar.add(menu2);
//panel
panel = 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