lunes, 6 de agosto de 2018
miércoles, 24 de enero de 2018
EVENTOS: BAJO NIVEL Y SEMANTICOS
Eventos: bajo nivel y semánticos
|
Eventos de bajo nivel
|
|
|
Evento
|
Significado
|
|
ComponentEvent
|
Cambio
en el tamaño, posición o visibilidad de un componente
|
|
FocusEvent
|
Cambio de foco (capacidad de un componente de
recibir entrada desde el teclado)
|
|
KeyEvent
|
Operación
con el teclado
|
|
MouseEvent
|
Operación con los botones del ratón o
movimientos del ratón
|
|
WindowEvent
|
Cambio
de estado en una ventana
|
|
AncestorEvent
|
Cambio en la composición, visibilidad o
posición de un elemento superior (ancestro) de la jerarquía de composición
|
|
|
Eventos de alto nivel
|
|
ActionEvent
|
Realización de la acción específica asociada
al componente
|
|
ChangeEvent
|
Cambio
en el estado del componente
|
|
ItemEvent
|
Elemento seleccionado o deseleccionado
|
|
CaretEvent
|
Cambio
en la posición del cursor de inserción en un componente que gestiona
texto
|
|
ListSelectionEvent
|
Cambio en la selección actual en una lista
|
Eventos de la clase JComponent
Tipo de
Eventos
|
Evento
|
Eventos
del Foco (Focus)
|
Foco obtenido
(focusGained)
Foco perdido
(focusLost)
|
Eventos
de entrada de teclado (Key)
|
Tecla
presionada (keyPressed)
Tecla
soltada (keyReleased)
Tecla
presionada y soltada (keyTyped)
|
Eventos
de ratón (Mouse)
|
Tecla del ratón presionada y soltada (mouseClicked)
El ratón entra en un componente (mouseEntered)
El ratón sale de un componente (mouseExited)
Tecla del ratón presionada (mousePressed)
Tecla del ratón soltada (mouseReleased)
|
Eventos
de movimiento del ratón (MouseMotion)
|
El ratón se ha movido mientras una tecla se
encuentra pulsada. El componente está siendo arrastrado
(mouseDragged)
El
ratón se ha movido y no se está pulsando ninguna tecla (mouseMoved)
|
Eventos
de la rueda del ratón (MouseWheel)
|
La rueda ha rotado. (mouseWheelMoved)
|
Eventos de la clase
AbstractButton (JButton)
Tipo de eventos
|
Evento
|
Eventos de
acción (Action)
|
Se ha hecho clic en el botón (actionPerformed)
|
Eventos de
cambio (Change)
|
El estado del botón ha cambiado (stateChanged)
|
Eventos de
selección de un item (Item)
|
Ha cambiado el estado de selección del botón (itemStateChanged)
|
Eventos de
acción (Action)
|
Se ha hecho clic en el botón (actionPerformed)
|
Eventos de la clase JComboBox
Tipo de eventos
|
Evento
|
Eventos de
acción (Action)
|
Se ha seleccionado un elemento. Si se puede escribir en el cuadro de texto se genera este evento
cuando se pulsa la tecla ENTER (actionPerformed)
|
Eventos de
selección de un item (Item)
|
Ha cambiado la selección de la lista desplegable (itemStateChanged)
(Se disparan dos eventos)
|
Eventos de la clase Window (JFrame)
Tipo de eventos
|
Evento
|
Eventos de
foco en la ventana (WindowFocus)
|
Foco obtenido
por la ventana (windowGainedFocus) Foco perdido por la ventana (windowLostFocus)
|
Eventos del
ciclo de vida de la ventana (Window)
|
Ventana activada (windowActivated)
La ventana ha sido cerrada como resultado de llamar al método
dispose (windowClosed)
El usuario ha pulsado el botón de cierre de la ventana
(windowClosing)
La ventana ya no es la ventana activa (windowDeactivated)
La ventana ha pasado de minimizada a normal (windowDeiconified)
La ventana se ha minimizado (windowIconified)
La ventana se ha hecho visible por primera vez (windowOpened)
|
Eventos de
estado de la ventana (WindowState)
|
La ventana ha cambiado de estado en cuanto a
minimizada, maximizada, restaurada, etc. (WindowStateChanged)
|
Evento de la clase JTextComponent (JTextField)
Tipo de eventos
|
Evento
|
Eventos de
entrada de texto (InputMethod)
|
El cursor ha cambiado de posición (caretPositionChanged)
El texto introducido por teclado ha cambiado (inputMethodTextChanged)
|
Eventos de
cursor (Caret)
|
El cursor ha cambiado de posición (caretUpdate)
|
martes, 23 de enero de 2018
CREAR PROPIOS EVENTOS
package proyectoempresaevent;
import java.util.ArrayList;
import java.util.ListIterator;
public class Empresa {
private int id;
private String nombre;
private String apellido;
private int edad;
private String empresa;
private static ArrayList listeners;
public Empresa(int id, String nombre, String apellido, int edad, String empresa) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
this.empresa = empresa;
listeners=new ArrayList();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
this.triggerIdEvent();
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
this.triggerNameEvent();
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
this.triggerLasNameEvent();
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
this.triggerAgeEvent();
}
public String getEmpresa() {
return empresa;
}
public void setEmpresa(String empresa) {
this.empresa = empresa;
this.triggerBusinessEvent();
}
public void addEventListener(changeEventListener listner) {
listeners.add(listner);
}
private void triggerNameEvent() {
ListIterator li = listeners.listIterator();
while (li.hasNext()) {
changeEventListener listener = (changeEventListener) li.next();
changeEvent readerObject = new changeEvent(this, this);
(listener).onNameChanged(readerObject);
}
}
private void triggerIdEvent() {
ListIterator li = listeners.listIterator();
while (li.hasNext()) {
changeEventListener listener = (changeEventListener) li.next();
changeEvent readerObject = new changeEvent(this, this);
(listener).onIdChange(readerObject);
}
}
private void triggerAgeEvent() {
ListIterator li = listeners.listIterator();
while (li.hasNext()) {
changeEventListener listener = (changeEventListener) li.next();
changeEvent readerObject = new changeEvent(this, this);
(listener).onAgeChange(readerObject);
}
}
private void triggerBusinessEvent() {
ListIterator li = listeners.listIterator();
while (li.hasNext()) {
changeEventListener listener = (changeEventListener) li.next();
changeEvent readerObject = new changeEvent(this, this);
(listener).onBisnessChange(readerObject);
}
}
private void triggerLasNameEvent() {
ListIterator li = listeners.listIterator();
while (li.hasNext()) {
changeEventListener listener = (changeEventListener) li.next();
changeEvent readerObject = new changeEvent(this, this);
(listener).onBisnessChange(readerObject);
}
}
}
package proyectoempresaevent;
import java.util.EventListener;
/*Estos son los métodos que se van a
disparar cuando suceda algún cambio en alguno de
los datos que recoge la clase Empresa.
Por ejemplo, sin una vez establecemos
el nombre y luego queremos cambiarlo, se va
a disparar ejecutar el método onNameChange.
Nuestro proyecto ahora debe lucir asi:*/
public interface changeEventListener extends EventListener {
public abstract void onIdChange(changeEvent ev);
public abstract void onNameChanged(changeEvent ev);
public abstract void onLastNameChange(changeEvent ev);
public abstract void onAgeChange(changeEvent ev);
public abstract void onBisnessChange(changeEvent ev);
}
package proyectoempresaevent;
import java.util.EventObject;
/**
*
* @author USUARIO
*/
public class changeEvent extends EventObject {
Empresa empresa;
public changeEvent(Object o, Empresa empress) {
super(o);
this.empresa = empress;
}
}
package proyectoempresaevent;
/**
*
* @author USUARIO
*/
public class ProyectoEmpresaEvent {
static changeEventListener evento = new changeEventListener() {
@Override
public void onIdChange(changeEvent ev) {
System.out.println("ha cambiado el id");
}
@Override
public void onNameChanged(changeEvent ev) {
System.out.println("ha cambiado el nomrbe");
}
@Override
public void onLastNameChange(changeEvent ev) {
System.out.println("ha cambiado el apellido");
}
@Override
public void onAgeChange(changeEvent ev) {
System.out.println("ha cambiado la edad");
}
@Override
public void onBisnessChange(changeEvent ev) {
System.out.println("ha cambiado el nombre de la empresa");
}
};
public static void main(String[] args) {
Empresa empresa = new Empresa(15, "levi", "velasquez", 19, "naranja");
empresa.addEventListener(evento);
empresa.setApellido("levi velasquez paz");
empresa.setNombre("juan carlo");
}
}
JTextField
o campo de texto es un componente utilizado para la captura de datos, estos son casi indispensables en una aplicacion. ... Esto nos crea un campo de texto con un texto especificado y el numero de columnas. Si desea ver todos los constructores y todos los metodos de la clase JLabel
PARA MAS INFORMACION VISITAR LA PAGINA DE LA API DE JAVA
aqui un ejemplo que nos presenta un sombra cuando gana el foco se elimina el texto y deje que el usuario escriba y cuando pierde el foco aparece el texto por defecto
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package principal;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Principal extends JFrame{
JTextSombra txtnombre,txttel,txtcorreo;
public Principal() {
JPanel pdatos=new JPanel();
pdatos.setLayout(new GridLayout(3,2));
pdatos.add(new JLabel("Nombre: "));
txtnombre=new JTextSombra("Escriba su aqui su nombre");
pdatos.add(txtnombre);
pdatos.add(new JLabel("Telefono: "));
txttel=new JTextSombra(20);
pdatos.add(txttel);
pdatos.add(new JLabel("E-maiil: "));
txtcorreo=new JTextSombra("Correo Electronico",20);
pdatos.add(txtcorreo);
JButton btnmostrar=new JButton("Mostrar");
btnmostrar.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "Nombre: "+txtnombre.getText()+", Telefono: "+txttel.getText()+", Correo Electronico: "+txtcorreo.getText());
}
});
add(pdatos);
JPanel pboton=new JPanel();
pboton.add(btnmostrar);
add(pboton,BorderLayout.SOUTH);
}
public static void main(String arg[]){
Principal p=new Principal();
p.setVisible(true);
p.setBounds(0, 0, 400, 180);
p.setLocationRelativeTo(null);
p.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
package principal;
import java.awt.Color;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JTextField;
public class JTextSombra extends JTextField implements FocusListener {
String texto = "Escriba aqui...";
public JTextSombra() {
this.setText(texto);
this.setForeground(Color.RED);
this.addFocusListener(this);
}
public JTextSombra(int lg) {
super(lg);
this.addFocusListener(this);
}
public JTextSombra(String texto) {
this.texto = texto;
this.setText(texto);
this.setForeground(Color.RED);
this.addFocusListener(this);
}
public JTextSombra(String texto, int lg) {
super(lg);
this.texto = texto;
this.setText(texto);
this.setForeground(Color.RED);
this.addFocusListener(this);
}
public void focusLost(FocusEvent arg0) {
if (JTextSombra.this.getText().equalsIgnoreCase("")) {
JTextSombra.this.setText(texto);
JTextSombra.this.setForeground(Color.RED);
}
}
@Override
public void focusGained(FocusEvent fe) {
if (JTextSombra.this.getText().equalsIgnoreCase(texto)) {
JTextSombra.this.setText("");
JTextSombra.this.setForeground(Color.black);
}
}
}
PARA MAS INFORMACION VISITAR LA PAGINA DE LA API DE JAVA
aqui un ejemplo que nos presenta un sombra cuando gana el foco se elimina el texto y deje que el usuario escriba y cuando pierde el foco aparece el texto por defecto
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package principal;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Principal extends JFrame{
JTextSombra txtnombre,txttel,txtcorreo;
public Principal() {
JPanel pdatos=new JPanel();
pdatos.setLayout(new GridLayout(3,2));
pdatos.add(new JLabel("Nombre: "));
txtnombre=new JTextSombra("Escriba su aqui su nombre");
pdatos.add(txtnombre);
pdatos.add(new JLabel("Telefono: "));
txttel=new JTextSombra(20);
pdatos.add(txttel);
pdatos.add(new JLabel("E-maiil: "));
txtcorreo=new JTextSombra("Correo Electronico",20);
pdatos.add(txtcorreo);
JButton btnmostrar=new JButton("Mostrar");
btnmostrar.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "Nombre: "+txtnombre.getText()+", Telefono: "+txttel.getText()+", Correo Electronico: "+txtcorreo.getText());
}
});
add(pdatos);
JPanel pboton=new JPanel();
pboton.add(btnmostrar);
add(pboton,BorderLayout.SOUTH);
}
public static void main(String arg[]){
Principal p=new Principal();
p.setVisible(true);
p.setBounds(0, 0, 400, 180);
p.setLocationRelativeTo(null);
p.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
//LA CLASE JTextSombra
package principal;
import java.awt.Color;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JTextField;
public class JTextSombra extends JTextField implements FocusListener {
String texto = "Escriba aqui...";
public JTextSombra() {
this.setText(texto);
this.setForeground(Color.RED);
this.addFocusListener(this);
}
public JTextSombra(int lg) {
super(lg);
this.addFocusListener(this);
}
public JTextSombra(String texto) {
this.texto = texto;
this.setText(texto);
this.setForeground(Color.RED);
this.addFocusListener(this);
}
public JTextSombra(String texto, int lg) {
super(lg);
this.texto = texto;
this.setText(texto);
this.setForeground(Color.RED);
this.addFocusListener(this);
}
public void focusLost(FocusEvent arg0) {
if (JTextSombra.this.getText().equalsIgnoreCase("")) {
JTextSombra.this.setText(texto);
JTextSombra.this.setForeground(Color.RED);
}
}
@Override
public void focusGained(FocusEvent fe) {
if (JTextSombra.this.getText().equalsIgnoreCase(texto)) {
JTextSombra.this.setText("");
JTextSombra.this.setForeground(Color.black);
}
}
}
Interface ActionListener
La interfaz del oyente para recibir eventos de acción. La clase que está interesada en procesar un evento de acción implementa esta interfaz, y el objeto creado con esa clase se registra con un componente, utilizando el método addActionListener del componente. Cuando se produce el evento de acción, se invoca el método actionPerformed de ese objeto.
nos permite tener un oyente para estar ala espera si se ha precionado un boton, etc para luego ejecutar actionPerformed() que es un metodo de la interfas ActionListener
componentes del actionListener
e.getSource():Nos devuelve el objeto que hace la llamada al oyente
PARA MAS INFORMACION VISITAR LA PAGINA DE LA API DE JAVA
EJEMPLO
package graficos;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author USUARIO
*/
public class primeraClaseEventosMouseClicked {
public static void main(String[] args) {
marcoEvent marco = new marcoEvent();
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setVisible(true);
}
}
class marcoEvent extends JFrame {
public marcoEvent() {
setTitle("Prueba de colores");
setSize(500, 500);
setLocation(200, 200);
setVisible(true);
laminaEvent lamina = new laminaEvent();
add(lamina);
}
}
class laminaEvent extends JPanel implements ActionListener {
boolean verificar = false;
Button boton = new Button("Nuevo");
Button boton1 = new Button("boton1");
TextField texto1 = new TextField("Texto 1");
public laminaEvent() {
add(boton);
add(boton1);
add(texto1);
boton1.addActionListener(this);
boton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(boton)) {
setBackground(Color.GREEN);
} else if (e.getSource().equals(boton1)) {
setBackground(Color.RED);
} else if (e.getSource().equals(texto1)) {
texto1.setText("hisistes click aqui");
}
}
}
nos permite tener un oyente para estar ala espera si se ha precionado un boton, etc para luego ejecutar actionPerformed() que es un metodo de la interfas ActionListener
componentes del actionListener
e.getSource():Nos devuelve el objeto que hace la llamada al oyente
PARA MAS INFORMACION VISITAR LA PAGINA DE LA API DE JAVA
EJEMPLO
package graficos;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author USUARIO
*/
public class primeraClaseEventosMouseClicked {
public static void main(String[] args) {
marcoEvent marco = new marcoEvent();
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setVisible(true);
}
}
class marcoEvent extends JFrame {
public marcoEvent() {
setTitle("Prueba de colores");
setSize(500, 500);
setLocation(200, 200);
setVisible(true);
laminaEvent lamina = new laminaEvent();
add(lamina);
}
}
class laminaEvent extends JPanel implements ActionListener {
boolean verificar = false;
Button boton = new Button("Nuevo");
Button boton1 = new Button("boton1");
TextField texto1 = new TextField("Texto 1");
public laminaEvent() {
add(boton);
add(boton1);
add(texto1);
boton1.addActionListener(this);
boton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(boton)) {
setBackground(Color.GREEN);
} else if (e.getSource().equals(boton1)) {
setBackground(Color.RED);
} else if (e.getSource().equals(texto1)) {
texto1.setText("hisistes click aqui");
}
}
}
JFrame
es una clase utilizada en Swing (biblioteca gráfica) para generar ventanas sobre las cuales añadir distintos objetos con los que podrá interactuar o no el usuario. A diferencia de JPanel, JFrame posee algunas nociones típicas de una ventana como minimizar, cerrar, maximizar y poder moverla.
ALGUNOS METODOS QUE INCLUYE JFrame
setsize() la cual permite poner ancho, altura a nuestra ventana
setLocation()permite darle una direccion en que parte se localizara la ventana construida
setbackground()el color de la ventana
setforeground()permite poner a todos los componentes de la letras del mismo color los que estan incluido en la venta
PARA MAS INFORMACION VISITAR LA PAGINA DE LA API DE JAVA
EJEMPLO
package graficos;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author USUARIO
*/
public class ponerImageneEnFrame {
public static void main(String[] args) {
marcoColors marco = new marcoColors();
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setVisible(true);
}
}
class marcoColors extends JFrame {
public marcoColors() {
setTitle("Prueba de colores");
setSize(500, 500);
setLocation(200, 200);
setVisible(true);
laminaImagen imagen = new laminaImagen();
add(imagen);
}
}
class laminaImagen extends JPanel {
private Image imagen;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
File miImagen = new File("src/graficos/uno.jpg");
try {
imagen = ImageIO.read(miImagen);
double altura = imagen.getHeight(this);
double ancho = imagen.getWidth(this);
System.out.println("altura " + altura + " ancho " + ancho);
} catch (Exception e) {
System.out.println("Error" + e.getMessage());
}
g.drawImage(imagen, 0, 0, null);
for (int i = 0; i < 200; i++) {
for (int j = 0; j < 200; j++) {
g.copyArea(0, 0, 360, 480, 360 * i, 300*j);
}
}
}
}
Interface WindowStateListener
La clase que está interesada en procesar un evento de estado de ventana implementa esta interfaz (y todos los métodos que contiene) o amplía la clase abstracta WindowAdapter (anulando solo los métodos de interés).
Nos permite saber el estado de la ventana actual implementado un único metodo y tambien controlar el tamaño del JFrame
texto = "esta en el nivel 0 pantalla grande";
}
PARA MAYOR INFORMACION VISITAR LA PAGINA DE LA API DE JAVA
EJEMPLO
package graficos;
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowStateListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Evento_Ventana {
public static void main(String[] args) {
MarcoEstado estado = new MarcoEstado();
estado.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class MarcoEstado extends JFrame {
String texto;
public MarcoEstado() {
setTitle("Nueva ventana");
setVisible(true);
setBounds(300, 300, 500, 350);
addWindowStateListener(new cambiarEstado());
}
class cambiarEstado implements WindowStateListener {
@Override
public void windowStateChanged(WindowEvent we) {
System.out.println("La ventana ha cambiado de estado");
if (we.getNewState() == 6) {//se usa fram.maximize_both o comparando con el numero
texto = "Esta en el nivel 6";
} else if (we.getNewState() == 0) {
texto = "esta en el nivel 0 pantalla grande";
}
System.out.println(texto);
}
}
}
Nos permite saber el estado de la ventana actual implementado un único metodo y tambien controlar el tamaño del JFrame
windowStateChanged(WindowEvent e) la cual nos permite saber que ventana
ha cambiado
e.getNewState(); Para WINDOW_STATE_CHANGED eventos devuelve el nuevo
estado de la ventana.
if (we.getNewState() == 6)
otro ejemplo
if (we.getNewState() == 0) {texto = "esta en el nivel 0 pantalla grande";
}
PARA MAYOR INFORMACION VISITAR LA PAGINA DE LA API DE JAVA
EJEMPLO
package graficos;
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowStateListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Evento_Ventana {
public static void main(String[] args) {
MarcoEstado estado = new MarcoEstado();
estado.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class MarcoEstado extends JFrame {
String texto;
public MarcoEstado() {
setTitle("Nueva ventana");
setVisible(true);
setBounds(300, 300, 500, 350);
addWindowStateListener(new cambiarEstado());
}
class cambiarEstado implements WindowStateListener {
@Override
public void windowStateChanged(WindowEvent we) {
System.out.println("La ventana ha cambiado de estado");
if (we.getNewState() == 6) {//se usa fram.maximize_both o comparando con el numero
texto = "Esta en el nivel 6";
} else if (we.getNewState() == 0) {
texto = "esta en el nivel 0 pantalla grande";
}
System.out.println(texto);
}
}
}










