COMPONENTES BASICOS JAVA SWING
COMPONENTES BASICOS JAVA SWING POR: RODOLFO MARTINEZ
JOHN DELGADO
COMPONENTES BASICOS JAVA SWING
INTRODUCCION
Las interfaces grficas de usuario son la cara visible de los ordenadores y tambin de otros
tipos de dispositivos electrnicos. Ayudan al usuario a interactuar con la mquina,
expanden el rango de aplicaciones de una computadora de forma considerable y
representan una importante ayuda para el aprendizaje del trabajo con ordenadores.
Adems no hay que menospreciar la importancia que han tenido en la popularizacin de
la informtica fuera de mbitos corporativos y cientficos, al reducir la cantidad de
conocimiento acerca de las mquinas necesaria para un uso eficaz, prctico y til de las
mismas.
Vamos aqu a tratar las diferentes bibliotecas grficas para JAVA, cada una con sus
constructores y mtodos mas utilizados y con su respectiva implementacin en ejemplos.
COMPONENTES BASICOS JAVA SWING
COMPONENTES BASICOS
JTextField: En Java este componente es un importante componente visual, su funcin
principal es manejar todos los procesos de entrada y salida (input/output) al programa.
CONSTRUCTORES:
JTextField()
JTextField(String str)
JTextField(String str, int col)
JTextField(int col)
MTODOS:
void setEditable(Boolean)
bolean isEditable()
void SetText(String)
String getText()
void setFont(font)
JPasswordField: Es un campo de texto que guarda la contrasea entrada en forma de un
array de caracteres (char).
CONSTRUCTORES:
JPasswordField
JPasswordField ( Document doc, String txt,
int columns)
JPasswordField (int columns)
JPasswordField ( String text)
JPasswordField ( String text, int columns)
METODOS
voidcopy ()
voidcut ()
booleanechoCharIsSet ()
AccessibleContextgetAccessibleContext ()
ChargetEchoChar()
char[]getPassword ()
JLabel: Es un componente sencillo para mostrar texto, imgenes o ambos. No reaccionar a
los eventos de entrada.
CONSTRUCTORES
JLabel()
JLabel(String)
JLabel(Icon)
JLabel(Icon, int)
JLabel(String, Icon, int)
COMPONENTES BASICOS JAVA SWING
MTODOS
void setText(String)
String getText()
void setIcon(Icon)
Icon getIcon()
void setVerticalAllignment(int)
void setVerticalTextPosition(int)
JButton: Aade un botn a un panel para la interaccin del usuario con la aplicacin.
CONSTRUCTORES
JButton ( )
JButton (icon imagen)
JButton (String str)
JButton (String str, icon image)
MTODOS
void setPressedIcon(Icon)
void setRolloverIcon(Icon)
void setEnabled(boolean)
JCheckBox: Es un componente que tiene dos Estados. Activar y desactivar. Es un cuadro
con una etiqueta. Si est marcada la casilla de verificacin, es representada por una marca
en un cuadro. Una casilla de verificacin puede utilizarse para mostrar u ocultar
splashscreen en el inicio, Conmutar visibilidad de una barra de herramientas etc.
CONSTRUCTORES
JCheckBox ( )
JTextBox(String etiqueta)
JCkeckBox(String etiqueta, boolean selecionado)
METODOS
isSelected()
setSelected(boolean estado)
JComboBox: Es un componente que combina un botn o campo editable y una lista
desplegable. El usuario puede seleccionar un valor en la lista desplegable, que aparece en
la solicitud del usuario. Si el cuadro combinado editables, el cuadro combinado incluye un
campo editable en el que el usuario puede escribir un valor.
CONSTRUCTORES
JComboBox()
JComboBox(ComboBoxModel)
JComboBox(Object[])
JComboBox(Vector)
COMPONENTES BASICOS JAVA SWING
METODOS
void addItem(Object)
void InsertItemAt(Object, int)
Object getItemAt(int)
JList: Es un componente que muestra una lista de objetos. Permite al usuario seleccionar
uno o ms elementos.
CONSTRUCTORES
JList()
JList(ListModel)
JList(Object [])
JList(Vector)
METODOS
void setListData(Vector)
void setSelectedIndices(int [])
void setSelectionMode(int)
void clearSelection()
JMenu: Una barra de mens es una de las partes ms visibles de la aplicacin GUI. Es un grupo de comandos ubicados en varios mens. Mientras que en las aplicaciones de consola haba que recordar todos los comandos arcanos, aqu tenemos la mayora de los comandos agrupados en partes lgicas. CONSTRUCTORES
JMenu(String x)
JMenuItem(String x)
JMenuBar()
METODOS
void setJMenuBar(JMenuBar)
JMenuBar getJMenuBar()
JToolBar: Crea una barra de herramientas en una aplicacin. CONSTRUCTORES
JToolBar()
JToolBar(int orientation)
JToolBar(String name)
JToolBar(String name, int orientation)
METODOS
JButton add(Action a)
void addSeparator()
void addSeparator(Dimension size)
protected void addImpl(Component comp,
Object constraints, int index)
COMPONENTES BASICOS JAVA SWING
JRadioButton: Conocido tambin como botn de opcin o botn de radio es un tipo de widget
utilizado en interfaces grficas de usuario que permite elegir una sola opcin de un conjunto
predeterminado de estas.
Los botones de opcin (botones de radio) se llaman as en referencia a los botones fsicos que se
usan en los radios para seleccionar estaciones pre-ajustadas - cuando se presionaba uno de los
botones, otro de los botones saltaba.
CONSTRUCTORES
JRadioButton()
JRadioButton(String etiqueta)
JRadioButton(String etiqueta,boolean selecionado)
Mtodos
isSelected()
setSelected(boolean estado)
DIALOGOS INTERACTIVOS Y DESPLIEGUE DE INFORMACION
JFileChooser: es un cuadro de dilogo estndar para seleccionar un archivo del sistema de
archivos.
CONSTRUCTORES
JFileChooser()
JFileChooser(File currentDirectory)
JFileChooser(File currentDirectory,
FileSystemView fsv)
JFileChooser(FileSystemView fsv)
JFileChooser(String currentDirectoryPath)
JFileChooser(String currentDirectoryPath,
FileSystemView fsv)
Metodos
boolean accept(File f)
void addActionListener(ActionListener l)
void addChoosableFileFilter(FileFilter filter)
void approveSelection()
void cancelSelection()
void changeToParentDirectory()
JTable: Se utiliza para mostrar y editar tablas regulares de celdas bidimensionales.
CONSTRUCTORES
JTable()
JTable(int numRows, int numColumns)
JTable(Object[][] rowData,
Object[] columnNames)
JTable(TableModel dm)
JTable(TableModel dm,
TableColumnModel cm)
JTable(TableModel dm,
TableColumnModel cm,
ListSelectionModel sm)
JTable(Vector rowData,
Vector columnNames)
COMPONENTES BASICOS JAVA SWING
METODOS
void addColumn(TableColumn aColumn)
void addColumnSelectionInterval(int index0,
int index1) void addNotify()
void addRowSelectionInterval(int index0, int index1)
void changeSelection(int rowIndex, int columnIndex,
boolean toggle, boolean extend)
void clearSelection()
void columnAdded(TableColumnModelEvent e)
int columnAtPoint(Point point)
void columnMarginChanged(ChangeEvent e)
void columnMoved(TableColumnModelEvent e)
void columnRemoved(TableColumnModelEvent e)
void columnSelectionChanged(ListSelectionEvent e)
void configureEnclosingScrollPane()
intconvertColumnIndexToModel(int viewColumnInd
ex)
intconvertColumnIndexToView(int modelColumnInd
ex)
JTree: Nos permite mostrar informacin jerrquica, es excelente para mostrar datos como
un rbol familiar o la estructura del sistema de archivos. Utilizar un JTree es algo sencillo,
pero no siempre es muy claro cmo llenarlo para no gastar mucha memoria y para que no
se gaste mucho tiempo al llenarlo.
CONSTRUCTORES
JTree()
JTree(Object[] value)
JTree(TreeModel newModel)
JTree(TreeNode root)
JTree(TreeNode root,
boolean asksAllowsChildren)
JTree(Vector value)
METODOS
void addSelectionInterval(int index0, int index1)
void addSelectionPath(TreePath path)
void addSelectionPaths(TreePath[] paths)
void addSelectionRow(int row)
void addSelectionRows(int[] rows)
void
addTreeExpansionListener(TreeExpansionListener tel)
void
addTreeSelectionListener(TreeSelectionListener tsl)
void
addTreeWillExpandListener(TreeWillExpandListener tel
)
void cancelEditing()
JTextArea: es un rea de varias lneas de texto que muestra texto. Es ligero componente para
trabajar con texto. El componente no controla el desplazamiento. Para ello, utilizamos
componentes JScrollPane. Un JScrollPane gestiona un punto de visin, barras de desplazamiento
vertical y horizontal opcional y fila opcional y puntos de visin de encabezado de columna.
CONSTRUCTOR
JTextArea ()
JTextArea ( Document doc)
JTextArea ( Document doc, String text, int
rows,int columns)
JTextArea (int rows, int columns)
JTextArea ( String text)Construye una nueva
TextArea con el textomostrado.
JTextArea ( String text, int rows, intcolumns)
COMPONENTES BASICOS JAVA SWING
METODOS
voidappend ( String str)
AccessibleContextgetAccessibleContext ()
intgetColumns ()
protected intgetColumnWidth ()
intgetLineCount ()
intgetLineEndOffset (int line)
intgetLineOfOffset (int offset)
intgetLineStartOffset (int line)
CONTENEDORES DE ALTO NIVEL (VENTANAS)
JDialog: Ventanas de dilogo o cuadros de dilogo son una parte indispensable de las
aplicaciones ms modernas de GUI. Un cuadro de dilogo se define como una
conversacin entre dos o ms personas. En una aplicacin informtica un cuadro de
dilogo es una ventana que se utiliza para "hablar" con la aplicacin. Un cuadro de dilogo
se utiliza para introducir datos, modificar datos, cambiar la configuracin de la aplicacin
etc. Los dilogos son importantes medios de comunicacin entre un usuario y un
programa de ordenador.
CONSTRUCTORES
JDialog()
JDialog(Dialog owner)
JDialog(Dialog owner, boolean modal)
JDialog(Dialog owner, String title)
JDialog(Dialog owner, String title,
boolean modal)
METODOS
protected void addImpl(Component comp,
Object constraints, int index)
protected JRootPane createRootPane()
void dialogInit()
AccessibleContext getAccessibleContext()
Container getContentPane()
int getDefaultCloseOperation()
JFrame: Permite crear una ventana principal en la aplicacin.
CONSTRUCTORES
JFrame()
JFrame(GraphicsConfiguration gc)
JFrame(String title)
JFrame(String title,
GraphicsConfiguration gc)
METODOS
protected void addImpl(Component comp,
Object constraints, int index)
protected JRootPane createRootPane()
protected void frameInit()
AccessibleContext getAccessibleContext()
Container getContentPane()
int getDefaultCloseOperation()
COMPONENTES BASICOS JAVA SWING
Aplicaciones de los componentes de la biblioteca swing:
Ejemplo 1: JTextField y JPasswordField
package pruebacampotexto; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PruebaCampoTexto extends JFrame{ private JTextField campoTexto1, campoTexto2, campoTexto3; private JPasswordField campoContrasenia; // configurar GUI public PruebaCampoTexto() { super( "Prueba de JTextField y JPasswordField" ); Container contenedor = getContentPane(); contenedor.setLayout( new FlowLayout() ); // crear campo de texto con tamao predeterminado campoTexto1 = new JTextField( 10 ); contenedor.add( campoTexto1 ); // crear campo de texto con texto predeterminado campoTexto2 = new JTextField( "Escriba el texto aqu" ); contenedor.add( campoTexto2 ); // crear campo de texto con texto predeterminado, // 20 elementos visibles y sin manejador de eventos campoTexto3 = new JTextField( "Campo de texto no editable", 20 ); campoTexto3.setEditable( false ); campoTexto3.setToolTipText("ste campo no se edita"); contenedor.add( campoTexto3 ); // crear campo de contrasea con texto predeterminado campoContrasenia = new JPasswordField( "Texto oculto" ); contenedor.add( campoContrasenia ); // registrar manejadores de eventos ManejadorCampoTexto manejador = new ManejadorCampoTexto(); campoTexto1.addActionListener( manejador ); campoTexto2.addActionListener( manejador ); campoTexto3.addActionListener( manejador ); campoContrasenia.addActionListener( manejador ); setSize( 325, 100 ); setVisible( true ); } // fin del constructor de PruebaCampoTexto public static void main( String args[] ) { PruebaCampoTexto aplicacion = new PruebaCampoTexto(); aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } // clase interna privada para el manejo de eventos private class ManejadorCampoTexto implements ActionListener {
COMPONENTES BASICOS JAVA SWING
// procesar eventos de campo de texto public void actionPerformed( ActionEvent evento ) { String cadena = ""; // el usuario oprimi Intro en objeto JTextField campoTexto1 if ( evento.getSource() == campoTexto1 ) cadena = "campoTexto1: " + evento.getActionCommand(); // el usuario oprimi Intro en objeto JTextField campoTexto2 else if ( evento.getSource() == campoTexto2 ) cadena = "campoTexto2: " + evento.getActionCommand(); // el usuario oprimi Intro en objeto JTextField campoTexto3 else if ( evento.getSource() == campoTexto3 ) cadena = "campoTexto3: " + evento.getActionCommand(); // el usuario oprimi Intro en objeto JTextField campoContrasenia else if ( evento.getSource() == campoContrasenia ) { cadena = "campoContrasenia: " + new String( campoContrasenia.getPassword() ); } JOptionPane.showMessageDialog( null, cadena,"Resultados",JOptionPane.CANCEL_OPTION); } // fin del mtodo actionPerformed } // fin de la clase interna privada ManejadorCampoTexto } // fin de la clase PruebaCampoTexto
Ejemplo 2: JDialog, JFrame, JButton y JLabel
package dosventanas; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.WindowConstants; public class DosVentanas { private JFrame ventanaPrincipal; private JDialog ventanaSecundaria; public static void main(String[] args) { new DosVentanas(); } public DosVentanas() { // Construccin de ventana principal ventanaPrincipal = new JFrame("VENTANA PRINCIPAL"); JButton boton = new JButton("ABRIR VENTANA SECUNDARIA");
COMPONENTES BASICOS JAVA SWING
ventanaPrincipal.getContentPane().add(boton); ventanaPrincipal.pack(); // Construccin de ventana secundaria ventanaSecundaria = new JDialog(ventanaPrincipal,"VENTANA SECUNDARIA"); JLabel etiqueta = new JLabel("ESTA ES LA VENTANA SECUNDARIA"); ventanaSecundaria.getContentPane().add(etiqueta); ventanaSecundaria.pack(); // Hacer que el botn abra la ventana secundaria y cierre la // principal boton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ventanaPrincipal.setVisible(false); ventanaSecundaria.setVisible(true); } }); // Hacer que al cerrarse la secundaria con la x de arriba a la // derecha, se muestre la primaria ventanaSecundaria.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { ventanaPrincipal.setVisible(true); ventanaSecundaria.setVisible(false); } public void windowClosed(WindowEvent e) { ventanaPrincipal.setVisible(true); ventanaSecundaria.setVisible(false); } }); // Mostrar la ventana principal ventanaPrincipal.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); ventanaPrincipal.setVisible(true); }}
Ejemplo 3: JCheckBox
package checkboxexample; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class CheckBoxExample extends JFrame implements ActionListener {
COMPONENTES BASICOS JAVA SWING
public CheckBoxExample() { initUI(); } public final void initUI() { setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); add(Box.createRigidArea(new Dimension(15, 20))); JCheckBox checkbox = new JCheckBox("Show Title", true); checkbox.setFocusable(false); checkbox.addActionListener(this); add(checkbox); setSize(2800, 2000); setTitle("JCheckBox example"); setLocationRelativeTo(null); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { JCheckBox source = (JCheckBox) e.getSource(); boolean state = source.isSelected(); if (state) { this.setTitle("JCheckbox example"); } else { this.setTitle(""); }} public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { CheckBoxExample ex = new CheckBoxExample(); ex.setVisible(true); }}); }}
Ejemplo 4: ComboBox
package combobx; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ComboBx { //declaracion, creacion e inicializacion de componentes, objetos y variables static JFrame ventana= new JFrame(); static JPanel p1= new JPanel(); static JPanel p2= new JPanel(); static String[] lista={"Distritos","Penonome","La Pintada","Aguadulce","Anton","Nata", "Ola"}; static JComboBox municipios = new JComboBox(lista ); static JTextField jt1=new JTextField(15); static JButton jb1= new JButton("OK");
COMPONENTES BASICOS JAVA SWING
public static void main(String[] args) { // area de definicion de propiedades de el objeto ventana.setTitle("mi programa"); ventana.setDefaultCloseOperation(ventana.EXIT_ON_CLOSE); ventana.getContentPane().setLayout(new GridLayout(2,0)); //cargando panel1 con combobox y definiendo titulo p1.setLayout(new GridLayout(1,0)); //observar que index cero es el titulo (aunque es un elemento mas) municipios.setSelectedIndex(0); p1.add(municipios); //cargando segundo panel con jbutton y jtextfield p2.add(jb1); p2.add(jt1); ventana.getContentPane().add(p1); ventana.getContentPane().add(p2); ventana.pack(); ventana.setVisible(true); jb1.addMouseListener( new MouseAdapter() { public void mousePressed(MouseEvent e){ // la propiedad getselecteditem() regresa un objeto jt1.setText(String.valueOf( municipios.getSelectedItem() ) ); }} ); }; // termina main }
Ejemplo 5: JList
package jlistymas; import javax.swing.*; import java.awt.*; public class JListYMas { public static void main(String[] args) { //Creacin de la ventana JFrame ventana = new JFrame("Ejemplo JList con Scroll"); ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ventana.setBounds(200,250,300,200); ventana.setLayout(new GridLayout()); //Creacin del panel, que contendra JList JPanel panel = new JPanel(); panel.setLayout(null); //creacin de los elememtos que componen la lista String[] nombres = {"Ana","Margarita","Daniela","Divian", "Leslie","Paz","Andrea","Macarena"}; //creacin del objeto lista JList lista = new JList(nombres); //se cambia la orientacin de presentacin y el ajuste lista.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); //selecciona un elemento de la lista Object[] seleccion = lista.getSelectedValues(); //recoge el indice de los seleccionados int[] indices = lista.getSelectedIndices();
COMPONENTES BASICOS JAVA SWING
// aqu se crea el objeto, es decir la barra de desplazamiento JScrollPane barraDesplazamiento = new JScrollPane(lista); barraDesplazamiento.setBounds(10,30,200,110); //Agrega la barra de desplazamiento al panel panel.add(barraDesplazamiento); ventana.add(panel); ventana.setVisible(true); } }
Ejemplo 6: JMenu
package simplemenu; import javax.swing.*; import java.awt.event.*; public class SimpleMenu { public static JMenuBar creaMenu() { JMenuBar menubar = new JMenuBar(); JMenu menu = new JMenu("Archivo"); JMenuItem item = new JMenuItem("Abrir"); menu.add(item); item = new JMenuItem("Salir"); menu.add(item); menubar.add(menu); menu = new JMenu("Edicion"); item = new JMenuItem("Cortar"); menu.add(item); item = new JMenuItem("Copiar"); menu.add(item); menubar.add(menu); return menubar; } public static void main(String[] args) { JFrame frame = new JFrame("Ejemplo simple de un menu"); frame.setJMenuBar(creaMenu()); frame.setSize(400, 300); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0); }}); frame.setVisible(true); }}
Ejemplo 7: JToolBar
package barra_herramientas; import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame;
COMPONENTES BASICOS JAVA SWING
import javax.swing.JTextArea; import javax.swing.JToolBar; public class Barra_herramientas { public static void main(String[] args) { new Barra_herramientas();} public Barra_herramientas() { JFrame ventanaPrincipal = new JFrame("JToolBar"); //Aqu definimos el titulo que tendr JTextArea componentePrincipal = new JTextArea(25,60);//Aqu definimos el tamao de la ventana principal de la aplicacion JToolBar toolBar = getToolBar(); ventanaPrincipal.getContentPane().add(componentePrincipal); //definicion de la posicion que ocupara la barra de herramientas en la ventana principal de la aplicacion ventanaPrincipal.getContentPane().add(toolBar, BorderLayout.NORTH); //creacion de la ventana principal ventanaPrincipal.pack(); ventanaPrincipal.setLocationRelativeTo(null); ventanaPrincipal.setVisible(true); } //creacion de los botones del JToolBar private JToolBar getToolBar() { JToolBar barraBotones = new JToolBar(); barraBotones.add(new JButton("FILE")); barraBotones.add(new JButton("EDIT")); barraBotones.add(new JButton("VIEW")); barraBotones.add(new JButton("NAVIGATE")); barraBotones.add(new JButton("SOURCE")); barraBotones.add(new JButton("REFACTOR")); barraBotones.add(new JButton("RUN")); barraBotones.add(new JButton("DEBUG")); barraBotones.add(new JButton("PROFILE")); barraBotones.add(new JButton("TEARN")); barraBotones.add(new JButton("TOOLS")); barraBotones.add(new JButton("WINDOW")); barraBotones.add(new JButton("HELP")); return barraBotones; }}
Ejemplo 8: JRadioButton
package jradiobuttondemo; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JRadioButtonDemo extends JPanel{ static JFrame frame; JLabel jlbPicture; RadioListener myListener = null; public JRadioButtonDemo() { // Create the radio buttons and assign Keyboard shortcuts using // Mnemonics
COMPONENTES BASICOS JAVA SWING
JRadioButton jrbNumbers = new JRadioButton("Numbers"); jrbNumbers.setMnemonic(KeyEvent.VK_N); jrbNumbers.setActionCommand("numbers"); jrbNumbers.setSelected(true); JRadioButton jrbAlphabets = new JRadioButton("Alphabets"); jrbAlphabets.setMnemonic(KeyEvent.VK_A); jrbAlphabets.setActionCommand("alphabets"); JRadioButton jrbSymbols = new JRadioButton("Symbols"); jrbSymbols.setMnemonic(KeyEvent.VK_S); jrbSymbols.setActionCommand("symbols"); // Group the radio buttons. ButtonGroup group = new ButtonGroup(); group.add(jrbNumbers); group.add(jrbAlphabets); group.add(jrbSymbols); // Register an action listener for the radio buttons. myListener = new RadioListener(); jrbNumbers.addActionListener(myListener); jrbAlphabets.addActionListener(myListener); jrbSymbols.addActionListener(myListener); // Put the radio buttons in a column in a panel JPanel jplRadio = new JPanel(); jplRadio.setLayout(new GridLayout(0, 1)); jplRadio.add(jrbNumbers); jplRadio.add(jrbAlphabets); jplRadio.add(jrbSymbols); setLayout(new BorderLayout()); add(jplRadio, BorderLayout.WEST); //add(jlbPicture, BorderLayout.CENTER); setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); } /* * Listens to the radio buttons. */ class RadioListener implements ActionListener { public void actionPerformed(ActionEvent e) {} } public static void main(String[] args) { // TODO code application logic here frame = new JFrame("JRadioButton Usage Demo"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.getContentPane().add(new JRadioButtonDemo(), BorderLayout.CENTER); frame.pack(); frame.setVisible(true); }}
COMPONENTES BASICOS JAVA SWING
Ejemplo 9: JFile chooser
package ejemplo; import javax.swing.JFileChooser; public class Ejemplo { public static void main(String[] args) { //Creamos selector de apertura JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); //Titulo que llevara la ventana chooser.setDialogTitle("Ejemplo de JFileChosser"); //Elegiremos archivos del directorio chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false); //Si seleccionamos algn archivo retornaremos su directorio if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { System.out.println("Directorio: " + chooser.getCurrentDirectory()); //Si no seleccionamos nada retornaremos No seleccion } else { System.out.println("No seleccion "); } }}
Ejemplo 10: JTable
package ejemplojtable; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; public class EjemploJTable extends JFrame{ public EjemploJTable() { setTitle("Ejemplo"); JPanel panel = new JPanel(new BorderLayout()); panel.add(getPanelTexto(),BorderLayout.NORTH); panel.add(getPanelTabla(),BorderLayout.CENTER); setContentPane(panel); setVisible(true); pack(); } private JTable tabla; private DefaultTableModel model; //Construye el panel con la tabla de datos private JScrollPane getPanelTabla() { String[] columnas = { "Mes","Cantidad" }; Object[][] datos = { { "Enero","10" }, { "Febrero","23" }, { "Marzo","14" },
COMPONENTES BASICOS JAVA SWING
{ "Abril","26" } }; model = new DefaultTableModel(datos,columnas); tabla = new JTable(model); JScrollPane scrol = new JScrollPane(tabla); return scrol; } private JTextField txtMes,txtCantidad; //Construye el panel con los controles y los botones private JPanel getPanelTexto() { //Se crea un panel como una matriz de 2 filas por 3 columnas JPanel panelTexto = new JPanel(new GridLayout(2,3)); JLabel lbMes = new JLabel("Mes"); txtMes = new JTextField(""); JLabel lbCantidad = new JLabel("Cantidad"); txtCantidad = new JTextField(""); JButton btnAgregar = new JButton("Agregar"); ButtonAgregarListener agregarListener = new ButtonAgregarListener(); btnAgregar.addActionListener(agregarListener); JButton btnQuitar = new JButton("Quitar"); ButtonQuitarListener quitarListener = new ButtonQuitarListener(); btnQuitar.addActionListener(quitarListener); //Estos controles se ubican en la primer fila panelTexto.add(lbMes); panelTexto.add(txtMes); panelTexto.add(btnAgregar); //Estos se ubican en la segunda fila panelTexto.add(lbCantidad); panelTexto.add(txtCantidad); panelTexto.add(btnQuitar); //Se agrega panelTexto a un panel con FlowLayout para que mantenga la proporcion JPanel panel = new JPanel(new FlowLayout()); panel.add(panelTexto); return panel; } public static void main(String[] args) { EjemploJTable frame = new EjemploJTable(); } public class ButtonAgregarListener implements ActionListener { public void actionPerformed(ActionEvent e) { //Se obtienen el contenido de las cajas de texto String mes = txtMes.getText(); String cantidad = txtMes.getText(); //se crea una array de String que sea la fila que agregaremos al modelo de la tabla String[] fila = new String[2]; //Asignamos a cada columna su valor correspondiente fila[0] = mes; fila[1] = cantidad; //Agregamos la fila al modelo model.addRow(fila); //Vaciamos los controles txtMes.setText("");
COMPONENTES BASICOS JAVA SWING
txtCantidad.setText(""); } } public class ButtonQuitarListener implements ActionListener { public void actionPerformed(ActionEvent e) { //Obtenemos la cantidad de filas seleccionadas de la tabla int cantidadFilasSeleccionadas = tabla.getSelectedRowCount(); if(cantidadFilasSeleccionadas > 0) { //Obtenemos cual es el nro. de fila que se selecciono int nroFila = tabla.getSelectedRow(); //Quitamos esa fila del modelo model.removeRow(nroFila); } } } }
Ejemplo 11: JTree
package arbol; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.WindowConstants; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; //Clase de ejemplo sencillo de uso del JTree public class Arbol { public static void main(String[] args) { // Construccion del arbol DefaultMutableTreeNode padre = new DefaultMutableTreeNode("JAH"); DefaultTreeModel modelo = new DefaultTreeModel(padre); JTree tree = new JTree(modelo); // Construccion de los datos del arbol DefaultMutableTreeNode hijo1_padre = new DefaultMutableTreeNode("JAHSEL"); modelo.insertNodeInto(hijo1_padre, padre, 0); DefaultMutableTreeNode hijo_jahsel = new DefaultMutableTreeNode("MAKEDA"); modelo.insertNodeInto(hijo_jahsel, hijo1_padre, 0); DefaultMutableTreeNode hijo2_padre = new DefaultMutableTreeNode("JAH HEM"); modelo.insertNodeInto(hijo2_padre, padre, 1); DefaultMutableTreeNode hijo_jah_hem = new DefaultMutableTreeNode("ALAINE"); modelo.insertNodeInto(hijo_jah_hem, hijo2_padre, 0); DefaultMutableTreeNode hijo3_padre = new DefaultMutableTreeNode("JAH CURE"); modelo.insertNodeInto(hijo3_padre, padre, 2); DefaultMutableTreeNode hijo1_jah_cure = new DefaultMutableTreeNode("CECILE"); modelo.insertNodeInto(hijo1_jah_cure, hijo3_padre, 0); DefaultMutableTreeNode hijo1_cecile = new DefaultMutableTreeNode("SHERROL"); modelo.insertNodeInto(hijo1_cecile, hijo1_jah_cure, 0); DefaultMutableTreeNode hijo2_jah_cure = new DefaultMutableTreeNode("DA'VILLE"); modelo.insertNodeInto(hijo2_jah_cure, hijo3_padre, 1);
COMPONENTES BASICOS JAVA SWING
DefaultMutableTreeNode hijo1_daville = new DefaultMutableTreeNode("CALI_P"); modelo.insertNodeInto(hijo1_daville, hijo2_jah_cure, 0); // Construccion y visualizacion de la ventana JFrame arbol = new JFrame ("JTree"); JScrollPane scroll = new JScrollPane(tree); v.getContentPane().add(scroll); v.pack(); v.setVisible(true); v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } }
Ejemplo 12: JTextArea
package demoareatexto; // Cmo copiar texto seleccionado de un rea de texto a otra. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DemoAreaTexto extends JFrame{ private JTextArea areaTexto1, areaTexto2; private JButton botonCopiar; // configurar GUI public DemoAreaTexto() { super( "Demostracin de JTextArea" ); Box cuadro = Box.createHorizontalBox(); String cadena = "sta es una cadena de\ndemostracin para\n" + "ilustrar cmo copiar texto\nde un rea de texto a \n" + "otra, utilizando un\nevento externo"; // establecer areaTexto1 areaTexto1 = new JTextArea( cadena, 10, 15 ); cuadro.add( new JScrollPane( areaTexto1 ) ); // establecer botonCopiar botonCopiar = new JButton( "Copiar >>>" ); cuadro.add( botonCopiar ); botonCopiar.addActionListener( new ActionListener() { // clase interna annima // establecer en areaTexto2 el texto seleccionado de areaTexto1 public void actionPerformed( ActionEvent evento ) { areaTexto2.append( areaTexto1.getSelectedText() ); } } // fin de la clase interna annima ); // fin de la llamada a addActionListener // establecer areaTexto2 areaTexto2 = new JTextArea( 10, 15 ); areaTexto2.setEditable( false );
COMPONENTES BASICOS JAVA SWING
cuadro.add( new JScrollPane( areaTexto2 ) ); // agregar cuadro al panel de contenido Container contenedor = getContentPane(); contenedor.add( cuadro ); // colocar en in BorderLayout.CENTER setSize( 425, 200 ); setVisible( true ); } // fin del constructor de DemoAreaTexto public static void main(String[] args) { // TODO code application logic here DemoAreaTexto aplicacion = new DemoAreaTexto(); aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); }}// fin de la clase DemoAreaTexto
Top Related