0% encontró este documento útil (0 votos)
270 vistas32 páginas

Java Swing

El documento presenta 13 ejemplos de código Java que ilustran el uso de diferentes componentes gráficos como Frame, Button, Canvas y Applet. Los ejemplos van desde la creación de ventanas y cuadrículas hasta la manipulación de eventos, dibujos, imágenes y relojes en applets.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
270 vistas32 páginas

Java Swing

El documento presenta 13 ejemplos de código Java que ilustran el uso de diferentes componentes gráficos como Frame, Button, Canvas y Applet. Los ejemplos van desde la creación de ventanas y cuadrículas hasta la manipulación de eventos, dibujos, imágenes y relojes en applets.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 32

Analista Programador

INGENIA-CAFI

JAVA DEVELOPER MODULO 1

Sesin 5: Fundamentos del Lenguaje


Tutor: Gelber C. Uscuchagua Flores
// EJEMPLO 1
// Crear una clase Java que permita crear un Frame de dimensiones 300x250
// Archivo: PrimerFrame.java

import java.awt.Frame;
public class Primerframe {
public static void main(String[] args) {
Frame f = new Frame("Primer Frame");
f.resize(300,250);
f.move(60,50);
f.show();
}
}

// EJEMPLO 2
// Crear una clase que se extienda de la clase Frame y que dibuje una cuadricula en la
//ventana o frame.
// Archivo: Cuadricula.java

import java.awt.*;
public class Cuadricula extends Frame {
public Cuadricula(String nombre) { super(nombre); }
public Cuadricula() { super(); }
public void paint(Graphics g) {
/* objeto Dimension tiene solo dos miembros width y height(ancho y alto) */
Dimension d = size();
int gridx = d.width/3;
int gridy = d.height/3;
for(int x=1;x<3;x++){
for(int y=1;y<3;y++){

Analista Programador

INGENIA-CAFI

g.drawLine(gridx*x,0,gridx*x,d.height);
g.drawLine(0,gridy*y,d.width,gridy*y);
}
}
}
}

// Crear una clase que utilice la clase extendida para crear una ventana
// Archivo: uso_Cuadricula.java

import java.awt.*;
public class uso_Cuadricula {
public static void main(String[] args) {
Frame f = new Cuadricula("Prueba");
f.resize(350,250);
f.move(60, 75);
f.show();
}
}

// EJEMPLO 3
//Crear una clase que contenga un Frame con dos botones (Aceptar y Cancelar)..
// Archivo: Botones0.java

import java.awt.*;
public class Botones0 {

public static void main(String[] arg) {


Button bt_aceptar;
Button bt_cancelar;
Frame ventana = new Frame("Botones");
ventana.setLayout(null);
bt_aceptar = new Button("Aceptar");
bt_cancelar = new Button("Cancelar");
ventana.add(bt_aceptar);

Analista Programador

INGENIA-CAFI

ventana.add(bt_cancelar);
// shape es la forma de los botones x e y en la esquina del frame
bt_aceptar.reshape(10, 30, 75, 45);
bt_cancelar.reshape(10, 85, 75, 45);
ventana.reshape(60, 75, 250, 200);
ventana.show();
}
}
// EJEMPLO 4
//Crear una clase que contenga un Frame y que maneje un evento para cerrar la ventana al
//hacer click en [x]
// Archivo: CerrandoVentana.java

import java.awt.*;
public class CerrandoVentana {
public static void main(String[] args) {
Frame f = new Frame("Ejercicio de Evento") {
public boolean handleEvent(Event evt) {
if (evt.id == Event.WINDOW_DESTROY)
System.exit(0);
return true;
}
};
f.show();
}
}
// EJEMPLO 5
//Crear una clase extendida de Canvas que personalice los eventos de un Button.
//Crear una clase extendida de Frame que contenga tres botones personalizados
//(Objetos relacionados al botn propio).
// Archivo: BotonPropio.java
import java.awt.*;
public class BotonPropio extends Canvas {
private boolean cursorAdentro;
private boolean cursorPresionado;

Analista Programador

INGENIA-CAFI

public boolean mouseEnter(Event evt, int x, int y) {


cursorAdentro = true;
repaint();
return true;
}
public boolean mouseExit(Event evt, int x, int y) {
cursorAdentro = false;
repaint();
return true;
}
public boolean mouseDown(Event evt, int x, int y) {
cursorPresionado = true;
repaint();
return true;
}
public boolean mouseUp(Event evt, int x, int y) {
cursorPresionado = false;
repaint();
if (cursorAdentro) {
Event e = new Event(this, Event.ACTION_EVENT, null);
deliverEvent(e);
}
return false;
}
public void paint(Graphics g) {
Color c = getBackground();
if (cursorAdentro && cursorPresionado)
c = getForeground();
g.setColor(c);
Dimension dim = size();
g.fillRect(0, 0, dim.width, dim.height);
}
}

//Crear una clase extendida de Frame que contenga tres botones personalizados
//(Objetos relacionados al botn propio).
// Archivo: uso_BotonPropio.java
import java.awt.*;
public class uso_BotonPropio extends Frame {

Analista Programador

INGENIA-CAFI

public static void main(String[] args) {


Frame f = new uso_BotonPropio();
}
BotonPropio b1, b2, b3, b4;
public uso_BotonPropio() {
super("Ejercicio BotonPropio");
setLayout(null);
b1 = new BotonPropio();
b1.setBackground(Color.black);
b1.setForeground(Color.white);
b2 = new BotonPropio();
b2.setBackground(Color.red);
b2.setForeground(Color.green);
b3 = new BotonPropio();
b3.setBackground(Color.blue);
b3.setForeground(Color.orange);
b4 = new BotonPropio();
b4.setBackground(Color.yellow);
b4.setForeground(Color.pink);
resize(400, 400);
b1.reshape(0, 0, 200, 200);
b2.reshape(200, 0, 200, 200);
b3.reshape(0, 200, 200, 200);
b4.reshape(200, 200, 200, 200);
add(b1);
add(b2);
add(b3);
add(b4);
show();
}
public boolean action(Event evt, Object arg) {
if(evt.target == b1)
System.out.println("B1 fue presionado!");
if(evt.target == b2)
System.out.println("B2 fue presionado!");
if(evt.target == b3)
System.out.println("B3 fue presionado!");
if(evt.target == b4)

Analista Programador

INGENIA-CAFI

System.out.println("B4 fue presionado!");


return true;
}
}

// EJEMPLO 6
//Crear una clase que contenga un Frame y que maneje , por medio de un Listener, un
//evento para cerrar la ventana al hacer click en [x]
// Archivo: ListenCerrando.java
import java.awt.*;
import java.awt.event.*;
public class ListenCerrando {
public static void main(String[] args) {
WindowListener wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
public void windowOpened(WindowEvent e) { }
public void windowClosed(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowActivated(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }
};
Frame closingFrame = new Frame("Closing Frame Test");
closingFrame.addWindowListener(wl);
closingFrame.setBounds(60, 75, 250, 400);
closingFrame.setVisible(true);
}
}

// EJEMPLO 7
//Dibujar una Texto en la posicin 50,50.
//Java Basico Ingenia
// Archivo: Ventana1.java

import java.awt.*;
public class Ventana1 extends Frame {
public Ventana1(String nombre) {
super(nombre);

Analista Programador

INGENIA-CAFI

}
public Ventana1() {
super();
}
public void paint(Graphics g) {
Dimension d = size();
g.setColor(new Color(0,0,0));
g.drawString("Java Basico Ingenia", 50, 50);
Font f = g.getFont();
FontMetrics fm = g.getFontMetrics(f);
System.out.println("Altura total: "+fm.getHeight());
System.out.println("Espacio: "+fm.getLeading());
System.out.println("Alto: "+fm.getAscent());
System.out.println("Bajo: "+fm.getDescent());
}
}

// Archivo: DibujandoTexto.java
import java.awt.*;
public class DibujandoTexto {
public static void main(String[] arg) {
Ventana1 v1 = new Ventana1("Dibujando Texto");
v1.setSize(450, 200);
v1.setVisible(true);
}
}

// EJEMPLO 8
//Crear un Frame que dibuje dos textos con diferente formato:
//
Java Basico
//
Ingenia
// Archivo: Ventana2.java

import java.awt.*;
public class Ventana2 extends Frame {
public Ventana2(String nombre) {
super(nombre);
}

Analista Programador

INGENIA-CAFI

public Ventana2() {
super();
}
public void paint(Graphics g) {
Dimension d = size();
g.setColor(new Color(0,0,0));
g.drawString("Dibujando Fuentes", 50, 50);
g.setFont(new Font("Monospaced", Font.BOLD, 36));
g.drawString("Dibujando Fuentes", 100, 100);
}
}

// Archivo: DibujandoTexto.java
import java.awt.*;
public class DibujandoFuente {
public static void main(String[] arg) {
Ventana2 v2 = new Ventana2("Dibujando Fuente");
v2.setSize(600, 200);
v2.setVisible(true);
}
}

// EJEMPLO 9
//Dibujar una Imagen que tenga como contenido el texto Java Basico Ingenia con una lnea
//debajo (simulando un estilo subrayado).
// Archivo: Ventana3.java

import java.awt.*;
public class Ventana3 extends Frame {
public Ventana3(String nombre) {
super(nombre);
}
public Ventana3() {
super();
}
public void paint(Graphics g) {

Analista Programador

INGENIA-CAFI

Dimension d = getSize();
Image i = createImage(d.width,d.height);
Graphics gp = i.getGraphics();
gp.drawString("Java Basico - Ingenia", 50, 50);
gp.drawLine(50,55,170,55);
gp.dispose();
g.drawImage(i,0,0,null);
}
}

// Archivo: DibujandoMemoria.java
public class DibujandoMemoria {
public static void main(String[] args) {
Ventana3 v3 = new Ventana3("Dibujando Memoria");
v3.setSize(250, 200);
v3.setVisible(true);
}
}

// EJEMPLO 10
//Cargar una imagen del disco y dibujarla en la aplicacin.
// Archivo: Ventana4.java
import java.awt.*;
public class Ventana4 extends Frame {
Image img = Toolkit.getDefaultToolkit().getImage("D:\\ruta de la figura\\imagen.gif");
public Ventana4(String nombre) {
super(nombre);
}
public Ventana4() {
super();
}
public void repaint(Graphics g) {
paint(g);
}
public void paint(Graphics g) {
g.drawImage(img,50,50,100,100,this);
}
}

Analista Programador

INGENIA-CAFI

// EJEMPLO 11
//Crear un applet que imprima un mensaje de texto Primer Applet.
// Archivo: PrimerApplet.java
import java.applet.*;
import java.awt.*;
public class PrimerApplet extends Applet {
public void paint(Graphics g) {
g.drawString("Primer Applet",50,50);
}
}

// EJEMPLO 12
//Utiliza las capacidades aprendidas para crear un Reloj en un Applet.
// Archivo: Reloj.java
import java.awt.*;
import java.applet.*;
import java.util.Date;
public class Reloj extends Applet implements Runnable {
Thread animador;
String horactual="";
Date date;
boolean running = true;
public void init() {
animador = new Thread(this);
animador.start();
}
public void destroy() {

running = false;
animador = null;
}
public void run() {
while (running) {
date = new Date();
String hora = date.getHours() + ":" + date.getMinutes() + ":"
+ date.getSeconds();

10

Analista Programador

INGENIA-CAFI

horactual=hora;
try {
animador.sleep(1000);
} catch (Exception e) {
}
repaint();
}
}
public void update(Graphics g) {
paint(g);
}
public void paint(Graphics g) {
Dimension d = getSize();
g.setColor(Color.WHITE);
g.fillRect(0,0,d.width,d.height);
g.setColor(Color.BLACK);
g.drawString(horactual,50,50);
}
}
// EJEMPLO 13
// Crear un Frame que contenga cinco (5) botones organizados usando FlowLayout().
// Archivo: PrimerLayout.java
import java.awt.*;
public class PrimerLayout {
public static void main(String[] args) {
Frame f = new Frame("Ejemplo de Layout");
f.setLayout(new FlowLayout());
f.add(new Button("Boton 1"));
f.add(new Button("Boton 2"));
f.add(new Button("Boton 3"));
f.add(new Button("Boton 4"));
f.add(new Button("Boton 5"));
f.resize(250, 200);
f.show();
}
}

11

Analista Programador

INGENIA-CAFI

// EJEMPLO 14
//Crear un JFrame con un tamao 300 x 100, con titulo y que procese su evento de cerrar
//ventana.
// Archivo: JVentana.java

import javax.swing.*;
import java.awt.event.*;
public class JVentana extends JFrame {
public static void main( String args[] ) {
// crea un objeto de tipo JVentana
JVentana ventana = new JVentana();
procesaEventos eventos = new procesaEventos();
// Le agrega un OYENTE
// un listener es un objeto necesario para procesar
// los eventos que ocurren en el objeto sobre el cual es llamado
ventana.addWindowListener( eventos );
// Le colocamos un ttulo
ventana.setTitle( "Mi primera Ventana" );
// Le ponemos un tamao
ventana.setSize( 300, 100 );
// mostramos la ventana
ventana.show();
}
}
// Esta clase permite el procesamiento de eventos de
// la ventana, solo respondemos al cierre de la misma
// los otros eventos no se sobrecargan y se procesan
// por defecto
class procesaEventos extends WindowAdapter {
// reacciona ante el intento de cierre de
// la aplicacion
public void windowClosing( WindowEvent e ) {
// termina la aplicacin
System.exit(0);
}
}

12

Analista Programador

INGENIA-CAFI

// EJEMPLO 15
//Hacer uso de los contenedores y componentes para crear una figura circular e interactuar
//con su color, tamao y posicin.
// Archivo: VentanaDibujo.java
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
public class VentanaDibujo extends JFrame {
//COMPONENTES DE LA VENTANA
private JButton btnLimpiar;
private JLabel lblCentro;
private JPanel panBotones;
private JLabel lblFigura;
private JComboBox cboFigura;
private JPanel panSuperior;
private JPanel panControles;
private JTextField txtRadio;
private JTextField txtCY;
private JTextField txtCX;
private JLabel lblRadio;
private JComboBox cboColor;
private JPanel panPrincipal;
private JLabel lblColor;
private JButton btnSalir;
private JButton btnDibujar;
private JPanel panDibujo;
//OBJETOS DE DIBUJO
private Ellipse2D.Double circulo;
//CONSTRUCTOR
public VentanaDibujo() {
setSize(430,300);
initComponents();
}

//INICIALIZA LOS COMPONENTES EN LA VENTANA


private void initComponents() {
panPrincipal = new JPanel();
panSuperior = new JPanel();
lblFigura = new JLabel();
lblRadio = new JLabel();
cboFigura = new JComboBox();
txtRadio = new JTextField();
panControles = new JPanel();
lblColor = new JLabel();

13

Analista Programador

INGENIA-CAFI

lblCentro = new JLabel();


txtCX = new JTextField();
txtCY = new JTextField();
cboColor = new JComboBox();
panBotones = new JPanel();
btnDibujar = new JButton();
btnLimpiar = new JButton();
btnSalir = new JButton();
//LA VENTANA
getContentPane().setLayout(new GridLayout(1, 2));
setTitle("Ventana de Grficos");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
exitForm(evt);
}
});
//PANEL PRINCIPAL
panPrincipal.setLayout(new GridLayout(3, 1));
//SUB PANEL SUPERIOR
panSuperior.setLayout(null);
panSuperior.setBackground(new java.awt.Color(255, 255, 204));
lblFigura.setText("Figura");
panSuperior.add(lblFigura);
lblFigura.setBounds(30, 40, 80, 20);
lblRadio.setText("Radio");
panSuperior.add(lblRadio);
lblRadio.setBounds(30, 70, 80, 20);
cboFigura.setBackground(new java.awt.Color(255, 255, 204));
cboFigura.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Circulo" }));
panSuperior.add(cboFigura);
cboFigura.setBounds(80, 40, 90, 20);
txtRadio.setText("20.0");
panSuperior.add(txtRadio);
txtRadio.setBounds(80, 70, 50, 20);
panPrincipal.add(panSuperior);
//SUB PANEL De CONTROLES
panControles.setLayout(null);
panControles.setBackground(new Color(255, 255, 204));
lblColor.setText("Color");
panControles.add(lblColor);
lblColor.setBounds(30, 10, 80, 20);
lblCentro.setText("Centro");
panControles.add(lblCentro);
lblCentro.setBounds(30, 40, 80, 20);
txtCX.setText("0.0");
panControles.add(txtCX);
txtCX.setBounds(80, 40, 40, 20);
txtCY.setText("0.0");

14

Analista Programador

INGENIA-CAFI

panControles.add(txtCY);
txtCY.setBounds(130, 40, 40, 20);
cboColor.setBackground(new Color(255, 255, 204));
cboColor.setModel(new DefaultComboBoxModel(new String[] { "Rojo", "Verde", "Azul" }));
cboColor.setSelectedIndex(0);

panControles.add(cboColor);
cboColor.setBounds(80, 10, 90, 20);
panPrincipal.add(panControles);
//SUB PANEL DEL BOTONES
panBotones.setLayout(new FlowLayout(java.awt.FlowLayout.CENTER, 5, 10));
panBotones.setBackground(new Color(255, 255, 204));
btnDibujar.setText("Dibujar");
btnDibujar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnDibujarActionPerformed(evt);
}
});
panBotones.add(btnDibujar);
btnLimpiar.setText("Limpiar");
btnLimpiar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnLimpiarActionPerformed(evt);
}
});
panBotones.add(btnLimpiar);
btnSalir.setText("Salir");
btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnSalirActionPerformed(evt);
}
});
panBotones.add(btnSalir);
panPrincipal.add(panBotones);
getContentPane().add(panPrincipal);
//PANEL DE DIBUJO
panDibujo = new JPanel() {
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.clearRect(0,0,getWidth(), getHeight());

//Crea el objeto a Dibujar


circulo = new Ellipse2D.Double(100.0 + Double.parseDouble( txtCX.getText() ),
100.0 + Double.parseDouble( txtCY.getText() ),
Double.parseDouble( txtRadio.getText() ),

15

Analista Programador

INGENIA-CAFI

Double.parseDouble( txtRadio.getText() ));


g2d.setBackground( Color.white );
//Establece el color de relleno
if (cboColor.getSelectedIndex() == 0)
g2d.setPaint( Color.red );
else if (cboColor.getSelectedIndex() == 1)
g2d.setPaint( Color.green );
else if (cboColor.getSelectedIndex() == 2)
g2d.setPaint( Color.blue );
g2d.fill( circulo );
}
};
panDibujo.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 2, true));
getContentPane().add(panDibujo);
}
private void btnDibujarActionPerformed(ActionEvent evt) {
//Redibuja el componente
panDibujo.repaint();
}
private void btnLimpiarActionPerformed(ActionEvent evt) {
//Valor de Inicio
txtRadio.setText("20.0");
txtCX.setText("0.0");
txtCY.setText("0.0");
cboColor.setSelectedIndex(2);
}
private void btnSalirActionPerformed(ActionEvent evt) {
WindowEvent we = new java.awt.event.WindowEvent(this,0);
exitForm(we);
}
private void exitForm(WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new VentanaDibujo().show();
}
}

16

Analista Programador

INGENIA-CAFI

// EJEMPLO 16
//Crear una Ventana Login que nos muestre un componente JOptionPane, en dos casos,
//uno si ha sido validado el usuario y la contrasea, y otro sino ha sido validado.
// Archivo: VentanaLogin.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class VentanaLogin extends JFrame {


//Controles de ventana
private JTextField txtUsuario;
private JPasswordField txtPassword;
private JLabel lblUsuario;
private JLabel lblPassword;
private JButton btnAceptar;
private JButton btnCancelar;
//Contenedores de componentes
private JPanel panInferior;
private JPanel panSuperior;
public VentanaLogin() {
initComponents();
}
private void initComponents() {
panSuperior = new JPanel();
lblUsuario = new JLabel();
txtUsuario = new JTextField();
lblPassword = new JLabel();
txtPassword = new JPasswordField();
panInferior = new JPanel();
btnAceptar = new JButton();
btnCancelar = new JButton();
//DISEO PARA LA VENTANA
getContentPane().setLayout(new GridLayout(2, 2));
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
exitForm(evt);
}
});
//DISEO PANEL SUPERIOR
panSuperior.setLayout(new GridLayout(2, 2, 0, 10));
panSuperior.setBackground(new Color(204, 204, 255));

17

Analista Programador

INGENIA-CAFI

lblUsuario.setText("Usuario");
lblPassword.setText("Contrasea");
panSuperior.add(lblUsuario);
panSuperior.add(txtUsuario);
panSuperior.add(lblPassword);
panSuperior.add(txtPassword);
getContentPane().add(panSuperior);
//DISEO PANEL INFERIOR
panInferior.setBackground(new Color(204, 204, 255));
btnAceptar.setText("Aceptar");
btnAceptar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnAceptarActionPerformed(evt);
}
});
btnCancelar.setText("Cancelar");
btnCancelar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnCancelarActionPerformed(evt);
}
});
panInferior.add(btnAceptar);
panInferior.add(btnCancelar);
getContentPane().add(panInferior);
//DIMESIN DE LA VENTANA
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setSize(new Dimension(310, 140));
setLocation((screenSize.width-276)/2,(screenSize.height-127)/2);
}
private void btnCancelarActionPerformed(ActionEvent evt) {
//Ponemos a vaco
txtUsuario.setText("");
txtPassword.setText("");
}
private void btnAceptarActionPerformed(ActionEvent evt) {
//Verificamos el usuario y password
if ( txtUsuario.getText().equals("visita") &&
txtPassword.getText().equals("visita") ) {
//Muestra mensaje, que el usuario esta OK.
JOptionPane.showMessageDialog(this,
"Bienvenido " + txtUsuario.getText() , "Inicio de Sesin",
JOptionPane.INFORMATION_MESSAGE);
}
else {
JOptionPane.showMessageDialog(this,
"El usuario o contrasea es incorrecto.",

18

Analista Programador

INGENIA-CAFI

"Error",
JOptionPane.ERROR_MESSAGE);
}
}
private void exitForm(WindowEvent evt) {
System.exit(0);
}
//Mtodo Principal
public static void main( String args[] ) {
// crea un objeto de tipo VentanaLogin
VentanaLogin login = new VentanaLogin();
//Ttulo de la ventana
login.setTitle( "Inicio de Sesin" );
//Mostramos la ventana
login.show();
}
}

// EJEMPLO 17
//Crear un JInternalFrame (frames internos) que tenga sus propiedades habilitadas y un
// Archivo: FrameInterno.java
import javax.swing.JInternalFrame;
import java.awt.event.*;
import java.awt.*;
public class FrameInterno extends JInternalFrame {
static int openFrameCount = 0;
static final int xOffset = 30, yOffset = 30;
public FrameInterno() {
super("Documento Nro. " + (++openFrameCount),
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable
setSize(300,300);
setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
setVisible(true);
}
}

19

Analista Programador

INGENIA-CAFI

//JFrame (frame contenedor) que contenga y pueda crear frames internos a traves de su
//JMenu
// Archivo: FrameContenedor.java

import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JFrame;
import java.awt.event.*;
import java.awt.*;
public class FrameContenedor extends JFrame {
JDesktopPane desktop;

public FrameContenedor() {
super("Frame Contenedor");
int inset = 50;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(inset, inset,screenSize.width - inset*2, screenSize.height-inset*2);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
desktop = new JDesktopPane();
createFrame();
setContentPane(desktop);
setJMenuBar(createMenuBar());
}
protected JMenuBar createMenuBar() {
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Documento");
JMenuItem menuItemNuevo = new JMenuItem("Nuevo");
menuItemNuevo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
createFrame();
}
});

20

Analista Programador

INGENIA-CAFI

JMenuItem menuItemSalir = new JMenuItem("Salir");


menuItemSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
menu.add(menuItemNuevo);
menu.add(menuItemSalir);
menuBar.add(menu);
return menuBar;
}
protected void createFrame() {
FrameInterno frameinterno = new FrameInterno();
desktop.add(frameinterno);
try {
frameinterno.setSelected(true);
} catch (java.beans.PropertyVetoException e2) {}
}
public static void main(String[] args) {
FrameContenedor frame = new FrameContenedor();
frame.setVisible(true);
}
}

21

Analista Programador

INGENIA-CAFI

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
public class VentanaDibujo extends JFrame {
//COMPONENTES DE LA VENTANA
private JButton btnLimpiar;
private JLabel lblCentro;
private JPanel panBotones;
private JLabel lblFigura;
private JComboBox cboFigura;
private JPanel panSuperior;
private JPanel panControles;
private JTextField txtRadio;
private JTextField txtCY;
private JTextField txtCX;
private JLabel lblRadio;
private JComboBox cboColor;
private JPanel panPrincipal;
private JLabel lblColor;
private JButton btnSalir;
private JButton btnDibujar;
private JPanel panDibujo;
//OBJETOS DE DIBUJO
private Ellipse2D.Double circulo;
private Rectangle2D rectangulo;
// private Arc2D.Double arco;
//CONSTRUCTOR
public VentanaDibujo() {
setSize(430,300);
initComponents();
}

//INICIALIZA LOS COMPONENTES EN LA VENTANA


private void initComponents() {
panPrincipal = new JPanel();
panSuperior = new JPanel();
lblFigura = new JLabel();
lblRadio = new JLabel();
cboFigura = new JComboBox();
txtRadio = new JTextField();
panControles = new JPanel();
lblColor = new JLabel();
lblCentro = new JLabel();
txtCX = new JTextField();
txtCY = new JTextField();

22

Analista Programador

INGENIA-CAFI

cboColor = new JComboBox();


panBotones = new JPanel();
btnDibujar = new JButton();
btnLimpiar = new JButton();
btnSalir = new JButton();
//LA VENTANA
getContentPane().setLayout(new GridLayout(1, 2));
setTitle("Ventana de Grficos");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
exitForm(evt);
}
});
//PANEL PRINCIPAL
panPrincipal.setLayout(new GridLayout(3, 1));
//SUB PANEL SUPERIOR
panSuperior.setLayout(null);
panSuperior.setBackground(new java.awt.Color(255, 255, 204));
lblFigura.setText("Figura");
panSuperior.add(lblFigura);
lblFigura.setBounds(30, 40, 80, 20);
lblRadio.setText("Radio");
panSuperior.add(lblRadio);
lblRadio.setBounds(30, 70, 80, 20);
cboFigura.setBackground(new java.awt.Color(255, 255, 204));
cboFigura.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Circulo",
"Rectangulo" }));
panSuperior.add(cboFigura);
cboFigura.setBounds(80, 40, 90, 20);
txtRadio.setText("20.0");
panSuperior.add(txtRadio);
txtRadio.setBounds(80, 70, 50, 20);
panPrincipal.add(panSuperior);
//SUB PANEL De CONTROLES
panControles.setLayout(null);
panControles.setBackground(new Color(255, 255, 204));
lblColor.setText("Color");
panControles.add(lblColor);
lblColor.setBounds(30, 10, 80, 20);
lblCentro.setText("Centro");
panControles.add(lblCentro);
lblCentro.setBounds(30, 40, 80, 20);
txtCX.setText("0.0");
panControles.add(txtCX);
txtCX.setBounds(80, 40, 40, 20);
txtCY.setText("0.0");
panControles.add(txtCY);
txtCY.setBounds(130, 40, 40, 20);
cboColor.setBackground(new Color(255, 255, 204));
cboColor.setModel(new DefaultComboBoxModel(new String[] { "Rojo", "Verde", "Azul"
,"Amarillo"}));
cboColor.setSelectedIndex(0);
panControles.add(cboColor);

23

Analista Programador

INGENIA-CAFI

cboColor.setBounds(80, 10, 90, 20);


panPrincipal.add(panControles);
//SUB PANEL DEL BOTONES
panBotones.setLayout(new FlowLayout(java.awt.FlowLayout.CENTER, 5, 10));
panBotones.setBackground(new Color(255, 255, 204));
btnDibujar.setText("Dibujar");
btnDibujar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnDibujarActionPerformed(evt);
}
});
panBotones.add(btnDibujar);
btnLimpiar.setText("Limpiar");
btnLimpiar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnLimpiarActionPerformed(evt);
}
});
panBotones.add(btnLimpiar);
btnSalir.setText("Salir");
btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnSalirActionPerformed(evt);
}
});
panBotones.add(btnSalir);
panPrincipal.add(panBotones);
getContentPane().add(panPrincipal);
//PANEL DE DIBUJO
panDibujo = new JPanel() {
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.clearRect(0,0,getWidth(), getHeight());

//Crea el objeto a Dibujar


circulo = new Ellipse2D.Double(100.0 + Double.parseDouble( txtCX.getText() ),
100.0 + Double.parseDouble( txtCY.getText() ),
Double.parseDouble( txtRadio.getText() ),
Double.parseDouble( txtRadio.getText() ));

// arco= new Arc2D.Double(100,100,10,10, 5, 5, 2);


rectangulo=new Rectangle2D.Double(100.0 + Double.parseDouble( txtCX.getText() ),
100.0 + Double.parseDouble( txtCY.getText() ),
Double.parseDouble( txtRadio.getText() ),
Double.parseDouble( txtRadio.getText() ));

g2d.setBackground( Color.white );

24

Analista Programador

INGENIA-CAFI

//Establece el color de relleno


if (cboColor.getSelectedIndex() == 0)
g2d.setPaint( Color.red );
else if (cboColor.getSelectedIndex() == 1)
g2d.setPaint( Color.green );
else if (cboColor.getSelectedIndex() == 2)
g2d.setPaint( Color.blue );
else if (cboColor.getSelectedIndex() == 3)
g2d.setPaint( Color.YELLOW );

if (cboFigura.getSelectedIndex() == 0)
g2d.fill( circulo );
else if (cboFigura.getSelectedIndex() == 1)
g2d.fill(rectangulo);

}
};
panDibujo.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 2, true));
getContentPane().add(panDibujo);
}
private void btnDibujarActionPerformed(ActionEvent evt) {
//Redibuja el componente
panDibujo.repaint();
}
private void btnLimpiarActionPerformed(ActionEvent evt) {
//Valor de Inicio
txtRadio.setText("20.0");
txtCX.setText("0.0");
txtCY.setText("0.0");
cboColor.setSelectedIndex(2);
}
private void btnSalirActionPerformed(ActionEvent evt) {
WindowEvent we = new java.awt.event.WindowEvent(this,0);
exitForm(we);
}
private void exitForm(WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new VentanaDibujo().show();
}
}

25

Analista Programador

INGENIA-CAFI

// EJEMPLO 18
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MostrarInformacion extends JFrame {

private JPanel panData;


private JLabel lblCodigo;
private JLabel lblNombre;
private JTextField txtCodigo;
private JTextField txtNombre;
private JPanel panNavegador;
private JButton btnPrimero;
private JButton btnUltimo;
private JButton btnSiguiente;
private JButton btnAnterior;
private JButton btnGrabar;
private JButton btnLimpiar;

public MostrarInformacion() {

// Permite inicializar los componentes visuales


initComponents();

private void initComponents() {


getContentPane().setLayout(new GridLayout(2, 1) );
// Pone el titulo del frame
setTitle( "Ventana SWING" );
// Pone un listener para que responda a cierre de la ventana
addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent evt ) {
System.exit(0);
}
}
);

26

Analista Programador

INGENIA-CAFI

// Crea el panel para la data


panData = new JPanel( new GridLayout( 2, 2 ) );
lblCodigo = new JLabel( "Cdigo :" );
lblNombre = new JLabel( "Nombre :" );
txtCodigo = new JTextField( "" );
txtNombre = new JTextField( "" );
panData.add( lblCodigo );
panData.add( txtCodigo );
panData.add( lblNombre );
panData.add( txtNombre );
getContentPane().add( panData );
// Crea el panel para el navegador
panNavegador = new JPanel( new GridLayout( 1, 6 ) );
btnPrimero = new JButton( "Primero" );
btnAnterior = new JButton( "Anterior" );
btnSiguiente = new JButton( "Siguiente" );
btnUltimo = new JButton( "Ultimo" );
btnGrabar = new JButton( "Grabar" );
btnLimpiar = new JButton( "Limpiar" );
btnPrimero.setBackground( new Color(102, 102, 255) );
btnPrimero.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 1 );
}
}
);
btnAnterior.setBackground( new Color(255, 153, 153) );
btnAnterior.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt) {
onClickNavegador( 2 );
}
}
);
btnSiguiente.setBackground( new java.awt.Color(0, 204, 204) );
btnSiguiente.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 3 );
}
}
);
btnUltimo.setBackground( new Color(255, 255, 153) );
btnUltimo.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 4 );
}
}

27

Analista Programador

INGENIA-CAFI

);
btnGrabar.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 5 );
}
}
);
btnLimpiar.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 6 );
}
}
);
panNavegador.add( btnPrimero );
panNavegador.add( btnAnterior );
panNavegador.add( btnSiguiente );
panNavegador.add( btnUltimo );
panNavegador.add( btnGrabar );
panNavegador.add( btnLimpiar );
getContentPane().add( panNavegador );
pack();
}
private void onClickNavegador( int accion ) {
try {
switch ( accion ) {
case 1 : System.out.println("Primero"); break;
case 2 : System.out.println("Anterior"); break;
case 3 : System.out.println("Siguiente"); break;
case 4 : System.out.println("Ultimo"); break;
case 5 : System.out.println("Grabar"); break;
case 6 : System.out.println("Limpiar"); break;
}
} catch( Exception e2 ) {
System.out.println( e2.getMessage() );
e2.printStackTrace();
}
}
// El main
public static void main( String args[] ) {
new MostrarInformacion().show();
}
}

28

Analista Programador

INGENIA-CAFI

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MostrarInformacion extends JFrame {

static int posicionfila ;


private JPanel panData;
private JLabel lblCodigo;
private JLabel lblNombre;
private JTextField txtCodigo;
private JTextField txtNombre;
private JPanel panNavegador;
private JButton btnPrimero;
private JButton btnUltimo;
private JButton btnSiguiente;
private JButton btnAnterior;
private JButton btnGrabar;
private JButton btnLimpiar;
private String [][] listaEmpleados = {
{ "Carmelo Cotn"," 123123"} ,
{"Aitor Menta"," 224224"} ,
{"Juan Sinmiedo"," 316316"},
{"Juana Laloca"," 989889"},
{"Perencejo Berenjeno"," 765765"},
{"Pedro Drope", "678876"} ,
{ "Perico Lospalotes", "006799"},
{ "Juan Tanamera", "565678"},
{ "Monica Levinski", "696996"},
{"Maximum Minimum", "9009"}
};
public MostrarInformacion() {

// Permite inicializar los componentes visuales


initComponents();
}

29

Analista Programador

INGENIA-CAFI

private void initComponents() {


getContentPane().setLayout(new GridLayout(2, 1) );
// Pone el titulo del frame
setTitle( "Ventana SWING" );
// Pone un listener para que responda a cierre de la ventana
addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent evt ) {
System.exit(0);
}
}
);

// Crea el panel para la data


panData = new JPanel( new GridLayout( 2, 2 ) );
lblCodigo = new JLabel( "Cdigo :" );
lblNombre = new JLabel( "Nombre :" );
txtCodigo = new JTextField( "" );
txtNombre = new JTextField( "" );
panData.add( lblCodigo );
panData.add( txtCodigo );
panData.add( lblNombre );
panData.add( txtNombre );
getContentPane().add( panData );
// Crea el panel para el navegador
panNavegador = new JPanel( new GridLayout( 1, 6 ) );
btnPrimero = new JButton( "Primero" );
btnAnterior = new JButton( "Anterior" );
btnSiguiente = new JButton( "Siguiente" );
btnUltimo = new JButton( "Ultimo" );
btnGrabar = new JButton( "Grabar" );
btnLimpiar = new JButton( "Limpiar" );
btnPrimero.setBackground( new Color(102, 102, 255) );
btnPrimero.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 1 );
}
}
);
btnAnterior.setBackground( new Color(255, 153, 153) );
btnAnterior.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt) {
onClickNavegador( 2 );
}
}
);

30

Analista Programador

INGENIA-CAFI

btnSiguiente.setBackground( new java.awt.Color(0, 204, 204) );


btnSiguiente.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 3 );
}
}
);
btnUltimo.setBackground( new Color(255, 255, 153) );
btnUltimo.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 4 );
}
}
);
btnGrabar.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 5 );
}
}
);
btnLimpiar.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
onClickNavegador( 6 );
}
}
);
panNavegador.add( btnPrimero );
panNavegador.add( btnAnterior );
panNavegador.add( btnSiguiente );
panNavegador.add( btnUltimo );
panNavegador.add( btnGrabar );
panNavegador.add( btnLimpiar );
getContentPane().add( panNavegador );
pack();
}
private void onClickNavegador( int accion ) {
try {
String nombre, codigo;

switch ( accion ) {
case 1 : // columna 0 o sino 1
codigo=listaEmpleados[0][1];
txtCodigo.setText(codigo);
nombre=listaEmpleados[0][0];

31

Analista Programador

INGENIA-CAFI

txtNombre.setText(nombre);
break;
case 2 :
codigo=listaEmpleados[--posicionfila][1];
txtCodigo.setText(codigo);
nombre=listaEmpleados[posicionfila][0];
txtNombre.setText(nombre);
System.out.println("Anterior"); break;
case 3 : System.out.println("Siguiente");
codigo=listaEmpleados[++posicionfila][1];
txtCodigo.setText(codigo);
nombre=listaEmpleados[posicionfila][0];
txtNombre.setText(nombre);
break;
case 4 :
codigo=listaEmpleados[9][1];
txtCodigo.setText(codigo);
nombre=listaEmpleados[9][0];
txtNombre.setText(nombre);
System.out.println("Ultimo"); break;
case 5 : System.out.println("Grabar"); break;
case 6 : System.out.println("Limpiar");
txtCodigo.setText("");

txtNombre.setText("");
break;
}
} catch( Exception e2 ) {
System.out.println( e2.getMessage() );
e2.printStackTrace();
}
}
// El main
public static void main( String args[] ) {
new MostrarInformacion().show();
}
}

32

También podría gustarte