Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Interfaces gráficas
de usuario
Label Canvas
Frame
List
TextArea
CheckBox
TextField Button
FontMetrics
Graphics
Lightweight
Las clases de AWT reemplazadas por Swing
se llaman igual pero con una J delante.
Categorías de clases:
Contenedores:
JFrame, JApplet, JWindow, JDialog
Componentes intermedios:
JPanel, JScrollPane
Componentes:
JLabel, JBbutton, JTextField, JTextArea, ...
Clases de soporte:
Graphics, Color, Font, ...
JMenuItem JMenu
JToggleButton JCheckBox
JRadioButton
JComponent JEditorPane
JTextArea
JTabbedPane JFileChooser
TextArea
Graphics List
Component Choice
CheckBox
LayoutManager CheckBoxGroup
Canvas
MenuBar
Scrollbar
import javax.swing.*;
public Gui00(){
super("Ejemplo 00");
// Configurar Barra Menu ;
// Configurar Layout y Componentes ;
// Configurar Manejadores Eventos ;
setSize(200,100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
} // Terminar la aplicación al cerrar la ventana.
import javax.swing.*
}
}
Panel
Panel Panel
Componentes (UI)
Componentes Componentes
Panel Panel
Panel
Componenets Componentes
Panel Panel Panel
UI UI UI
panel
import javax.swing.*;
import java.awt.*;
public Gui01() {
super("Ejemplo 01 con botón");
// Configurar componentes ;
miboton = new JButton("Aceptar");
panel = this.getContentPane();
panel.add(miboton);
setSize(200,100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
setLayout(new BorderLayout());
setLayout(new FlowLayout());
setLayout(new GridLayout(3,4));
import javax.swing.*;
import java.awt.*;
import javax.swing.*;
import java.awt.*;
public Gui03() {
super("Ejemplo de Layout");
// Configurar componentes:
panel = this.getContentPane();
// BorderLayout
panel.setLayout(new BorderLayout(5, 10));
panel.add(new JButton("1"), BorderLayout.EAST);
panel.add(new JButton("2"), BorderLayout.SOUTH);
panel.add(new JButton("3"), BorderLayout.WEST);
panel.add(new JButton("4"), BorderLayout.NORTH);
panel.add(new JButton("5"), BorderLayout.CENTER);
setSize(200,200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
... Gui03.java
import javax.swing.*;
import java.awt.*;
public Gui03b() {
super("Ejemplo de Layout");
// Configurar componentes:
panel = this.getContentPane();
// GridLayout
panel.setLayout(new GridLayout(4, 3, 5, 5));
// Add buttons to the frame
for(int i = 1; i <= 10; i++)
panel.add(new JButton(Integer.toString(i)));
setSize(200,200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
... Gui03b.java
frame
textfield
p2
boton 12
botones p1
import javax.swing.*;
import java.awt.*;
import javax.swing.*;
import java.awt.*;
Graphics g;
...
g.setColor(Color.blue);
g.setBackground(Color.red);
g.drawLine(int x1, int y1, int x2, int y2);
g.drawRect(int x, int y, int ancho, int alto);
g.drawRoundedRect(int x, int y, int ancho, int alto,
int arcWidth, int arcHeight);
g.fillRect(int x, int y, int ancho, int alto);
g.fillRoundedRect(int x, int y, int ancho, int alto,
int arcWidth, int arcHeight);
g.drawOval(int x, int y, int ancho, int alto);
g.fillOval(int x, int y, int ancho, int alto);
g.drawArc(int x, int y, int ancho, int alto, int ang1,
int ang2);
g.drwaString(String cadena, int x, int y);
g.setFont(Font f);
...
"Helvetica" Font.PLAIN
"TimesNewRoman" Font.BOLD
"Courier" Font.ITALIC
"Dialog" Font.BOLD + Font.ITALIC
"DialogInput"
"ZapfDingbats"
import javax.swing.*;
import java.awt.*;
class MiPanel extends JPanel {
public void paintComponent(Graphics g) {
g.setFont(new Font("Helvetica", Font.PLAIN, 18));
g.drawString("Hola", 70, 50);
g.setFont(new Font("TimesRoman", Font.BOLD, 18));
g.drawString("Hola", 70, 80);
g.setFont(new Font("DialogInput", Font.ITALIC, 18));
g.drawString("Hola", 70, 110);
}
}
public class Gui07 extends JFrame {
Container panel;
public Gui07() {
super("Ejemplo de dibujo");
panel = this.getContentPane();
panel.add(new MiPanel());
setSize(200, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
} ...
Gui07.java
Objeto evento:
ActionEvent e
Objeto oyente:
La ventana
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public Gui08() {
super("Ejemplo de eventos");
panel = this.getContentPane();
boton = new JButton("Pulsa!");
panel.add(boton);
boton.addActionListener(this);
setSize(100, 100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Gui09 extends JFrame {
JButton boton;
Container panel;
public Gui09() {
panel = this.getContentPane();
boton = new JButton("Pulsa!");
panel.add(boton);
boton.addActionListener(new OyenteBoton());
setSize(100, 100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
... Una clase
} de oyente
class OyenteBoton implements ActionListener { específica
public void actionPerformed(ActionEvent e) {
Toolkit.getDefaultToolkit().beep();
}
}
Gui09.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public Gui10() {
panel = getContentPane();
panel.setLayout(new FlowLayout());
panel.add(new JLabel("Valor "));
campoValor = new JTextField(5);
panel.add(campoValor);
botonCopiar = new JButton("Copiar");
panel.add(botonCopiar);
botonCopiar.addActionListener(new OyenteBoton());
panel.add(new JLabel(" Copia "));
resultado = new JTextField(6);
...
setSize(400, 100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
Gui10.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public Gui12() {
super("Color de fondo");
panel = getContentPane();
panel.setLayout(new FlowLayout());
panel.add(red);
panel.add(blue);
red.addActionListener(new ColorActionListener(Color.red));
blue.addActionListener(new ColorActionListener(Color.blue));
setSize(200, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
} ...
Gui12.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Gui13 extends JFrame {
Container panel;
TextField cantidad;
JButton boton1, boton2;
public Gui13(){
super("Conversor Euros-Pesetas");
boton1 = new JButton("A euros");
boton2 = new JButton("A pesetas");
cantidad = new TextField(10);
panel = this.getContentPane();
JLabel eti2 = new JLabel(new ImageIcon("logo.gif"));
panel.add(eti2);
panel.add(cantidad);
panel.add(boton1);
panel.add(boton2);
panel.setLayout(new FlowLayout());
boton1.addActionListener(new OyenteBoton());
boton2.addActionListener(new OyenteBoton());
setSize(300, 250);
...
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String args[]) {
Gui13 ventana = new Gui13();
}
class OyenteBoton implements ActionListener {
public void actionPerformed(ActionEvent ae) {
Float f = new Float(cantidad.getText());
float valor = f.floatValue();
String s = (String)ae.getActionCommand();
if(s.equals("A euros")) {
valor = (float) (valor / 166.321);
panel.setBackground(Color.green);
}
else if(s.equals("A pesetas")) {
valor = (float) (valor * 166.321);
panel.setBackground(Color.blue);
}
cantidad.setText(Float.toString(valor));
}
}
} Gui13.java
ActionListener actionPerformed(ActionEvent)
Escucha eventos de tipo ActionEvent
KeyListener keyPressed(KeyEvent)
Escucha eventos de teclado keyReleased(KeyEvent)
keyTyped(KeyEvent)
MouseListener mouseClicked(MouseEvent)
Escucha eventos de acción del ratón mouseEntered(MouseEvent)
(botones) mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
MouseMotionListener mouseDragged(MouseEvent)
Escucha eventos de movimiento del ratón mouseMoved(MouseEvent)
Constructores:
JButton(String text)
JButton(String text, Icon icon)
JButton(Icon icon)
Respuesta a botones:
Implementar la interfaz ActionListener
Implementar el método actionPerformed(ActionEvent e)
Obtener selección:
int[] indices = l2.getSelectedIndices();
l.addListSelectionListener(new OyenteLista());
...
Creación:
bar1 = new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,100);
Registrar evento:
bar1.addAdjustmentListener(oyente);
Implementar la interfaz AdjustmentListener
Implementar el método
adjustmentValueChanged(AdjustmentEvent e)
bar1.addAdjustmentListener(new OyenteBarra());
...
class OyenteBarra implements AdjustmentListener {
public void adjustmentValueChanged(AdjustmentEvent e) {
... }
}
Obtener valor:
int val = bar1.getValue(); // val entre 0 y 100
public Gui15() {
super("Controles");
panel = this.getContentPane();
panel.setLayout(new BorderLayout());
p1 = new JPanel(new GridLayout(1, 3, 10, 10));
p1.setBackground(Color.lightGray);
l1 = new JLabel("Elegir:", Label.RIGHT);
l1.setBackground(Color.yellow);
p1.add(l1);
ch1 = new JComboBox();
for(int i = 0; i < lista.length; i++)
ch1.addItem(lista[i]); ...
ch1.addItemListener(new OyenteCombo());
p1.add(ch1);
bar1 = new JScrollBar(Scrollbar.HORIZONTAL, 0, 0, 0, 100);
/* scroll de 0 a 100*/
bar1.addAdjustmentListener(new OyenteBarra());
p1.add(bar1);
p2 = new JPanel(new BorderLayout());
p2.setBackground(Color.lightGray);
msg = new JLabel("Msg:", Label.LEFT);
msg.setForeground(Color.blue);
p2.add("North", msg);
panel.add(p1, "North");
panel.add(p2, "South");
setSize(300, 100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
...
public Gui17() {
...
this.addMouseMotionListener(new OyenteMover());
...
}
...
Graphics (java.awt)
Component (funcionalidad básica de componentes gráficos)
Button, Canvas, CheckBox, Choice, Label, List, ScrollBar
TextComponent
TextField, TextArea
Container (permite agrupar, añadir y eliminar componentes)
(también definir diseño o disposición (layout managers))
ScrollPane
Panel
Applet (java.applet)
JApplet (javax.swing)
Window
Frame
JFrame (javax.swing)
Dialog
FileDialog
JDialog (javax.swing)
JWindow (javax.swing)
JComponent (javax.swing)
Contenedores intermedios:
JPanel
Agrupa a otros componentes.
JScrollPanel
Incluye barras de desplazamiento.
public Gui19() {
super("Título de la ventana");
p = getContentPane();
p.setLayout(new FlowLayout());
setSize(200, 100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Object[] textoOpciones = {"Si adelante", "Ahora no", "No
sé"};
int opcion = JOptionPane.showOptionDialog(null,
"¿Desea continuar?", "mensaje",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, null, textoOpciones,
textoOpciones[0]);
}
... Gui19.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public Gui22() {
super("Menús");
JMenuBar jmb = new JMenuBar();
setJMenuBar(jmb);
JMenu operationMenu = new JMenu("Operación");
operationMenu.setMnemonic('O'); // Letra distinguida
jmb.add(operationMenu);
operationMenu.add(jmiSuma = new JMenuItem("Suma", 'S'));
operationMenu.add(jmiResta = new JMenuItem("Resta", 'R'));
operationMenu.add(jmiMul = new JMenuItem("Multiplica",'M'));
operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));
...
...
Gui22.java