Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SwingJButton
SwingJButton
El tercer control visual de uso muy comn es el que provee la clase JButton. Este
controlvisualmuestraunbotn.
ElprocesoparaaadirbotonesauncontrolJFrameessimilaraaadircontrolesde
tipoJLabel.
Ahoraveremoslacapturadeeventosconloscontrolesvisuales.Unodeloseventos
mscomunesescuandohacemosclicsobreunbotn.
Java implementa el concepto de interfaces para poder llamar a mtodos de una
claseexistenteaunaclasedesarrolladapornosotros.
Problema1:
Confeccionar una ventana que muestre un botn. Cuando se presione finalizar la
ejecucindelprogramaJava.
Programa:
importjavax.swing.*
importjava.awt.event.*
http://www.javaya.com.ar/detalleconcepto.php?codigo=106&inicio=20
1/7
14/8/2015
SwingJButton
publicclassFormularioextendsJFrameimplementsActionListe
JButtonboton1
publicFormulario(){
setLayout(null)
boton1=newJButton("Finalizar")
boton1.setBounds(300,250,100,30)
add(boton1)
boton1.addActionListener(this)
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==boton1){
System.exit(0)
}
}
publicstaticvoidmain(String[]ar){
Formularioformulario1=newFormulario()
formulario1.setBounds(0,0,450,350)
formulario1.setVisible(true)
}
}
LamecnicaparaatraparelclicdelobjetodelaclaseJButtonsehacemediantela
implementacin de una interface. Una interface es un protocolo que permite la
comunicacin entre dos clases. Una interface contiene uno o ms cabecera de
mtodos,peronosuimplementacin.PorejemplolainterfaceActionListenertienela
siguienteestructura:
interfaceActionListener{
publicvoidactionPerformed(ActionEvente){
}
LuegolasclasesqueimplementenlainterfaceActionListenerdebernespecificarel
algortmodelmtodoactionPerformed.
Mediante el concepto de interfaces podemos hacer que desde la clase JButton se
puedellamaraunmtodoqueimplementamosennuestraclase.
Paraindicarqueunaclaseimplementarunainterfacelohacemosenladeclaracin
delaclaseconlasintaxis:
http://www.javaya.com.ar/detalleconcepto.php?codigo=106&inicio=20
2/7
14/8/2015
SwingJButton
publicclassFormularioextendsJFrameimplementsActionListener{
EsdecirquecadavezquesepresionaelbotndesdelaclaseJButtonsellamaal
mtodoactionPerformedyrecibecomoparmetrounobjetodelaclaseActionEvent.
EnelmtodoactionPerformedmedianteelaccesoalmtodogetSource()delobjeto
quellegacomoparmetropodemosanalizarquebotnsepresion:
http://www.javaya.com.ar/detalleconcepto.php?codigo=106&inicio=20
3/7
14/8/2015
SwingJButton
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==boton1){
System.exit(0);
}
}
Sisepresionnelboton1luegoelifseverificaverdaderoyporlotantollamandoal
mtodoexitdelaclaseSystemsefinalizalaejecucindelprograma.
Lamainnovaraennadaconrespectoaproblemasanteriores.
Problema2:
Confeccionar una ventana que contenga tres objetos de la clase JButton con las
etiquetas "1", "2" y "3". Al presionarse cambiar el ttulo del JFrame indicando cul
botnsepresion.
Programa:
importjavax.swing.*
importjava.awt.event.*
publicclassFormularioextendsJFrameimplementsActionListe
privateJButtonboton1,boton2,boton3
publicFormulario(){
setLayout(null)
boton1=newJButton("1")
boton1.setBounds(10,100,90,30)
add(boton1)
boton1.addActionListener(this)
boton2=newJButton("2")
boton2.setBounds(110,100,90,30)
add(boton2)
http://www.javaya.com.ar/detalleconcepto.php?codigo=106&inicio=20
4/7
14/8/2015
SwingJButton
boton2.addActionListener(this)
boton3=newJButton("3")
boton3.setBounds(210,100,90,30)
add(boton3)
boton3.addActionListener(this)
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==boton1){
setTitle("boton1")
}
if(e.getSource()==boton2){
setTitle("boton2")
}
if(e.getSource()==boton3){
setTitle("boton3")
}
}
publicstaticvoidmain(String[]ar){
Formularioformulario1=newFormulario()
formulario1.setBounds(0,0,350,200)
formulario1.setVisible(true)
}
}
Debemosdeclarar3objetosdelaclaseJButton:
privateJButtonboton1,boton2,boton3;
EnelconstructorcreamoslostresobjetosdelaclaseJButtonylosubicamosdentro
delcontrolJFrame(tambinllamamosalmtodoaddActionListenerparaenviarlela
direccindelobjetodelaclaseFormulario):
publicFormulario(){
setLayout(null);
boton1=newJButton("1");
boton1.setBounds(10,100,90,30);
add(boton1);
boton1.addActionListener(this);
boton2=newJButton("2");
boton2.setBounds(110,100,90,30);
http://www.javaya.com.ar/detalleconcepto.php?codigo=106&inicio=20
5/7
14/8/2015
SwingJButton
add(boton2);
boton2.addActionListener(this);
boton3=newJButton("3");
boton3.setBounds(210,100,90,30);
add(boton3);
boton3.addActionListener(this);
}
SegnelbotnpresionadollamamosalmtodosetTitlequesetratadeunmtodo
heredadodelaclaseJFrameyquetieneporobjetivomostrarunStringenelttulo
delaventana.
Problemaspropuestos
1. DisponerdosobjetosdelaclaseJButtonconlasetiquetas:"varn"y"mujer",al
presionarse mostrar en la barra de ttulos del JFrame la etiqueta del botn
presionado.
importjavax.swing.*
importjava.awt.event.*
publicclassFormularioextendsJFrameimplementsActionListener{
privateJButtonboton1,boton2
publicFormulario(){
setLayout(null)
boton1=newJButton("Varn")
boton1.setBounds(10,10,100,30)
boton1.addActionListener(this)
add(boton1)
boton2=newJButton("Mujer")
boton2.setBounds(10,70,100,30)
boton2.addActionListener(this)
add(boton2)
http://www.javaya.com.ar/detalleconcepto.php?codigo=106&inicio=20
6/7
14/8/2015
SwingJButton
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==boton1){
setTitle("Varn")
}
if(e.getSource()==boton2){
setTitle("Mujer")
}
}
publicstaticvoidmain(String[]ar){
Formularioformulario1=newFormulario()
formulario1.setBounds(0,0,130,140)
formulario1.setVisible(true)
}
}
Retornar
http://www.javaya.com.ar/detalleconcepto.php?codigo=106&inicio=20
7/7