Libro - Capitulo 14 Java Gui y Eventos
Libro - Capitulo 14 Java Gui y Eventos
Object java.lang
import javax.swing.*;
class Ch7DefaultJFrame {
public static void main( String[] args ) {
JFrame defaultJFrame;
defaultJFrame = new JFrame();
defaultJFrame.setVisible(true);
}
}
import javax.swing.*;
import javax.swing.*;
class JFrameSubclass1 extends JFrame{
private static final int ANCHO= 300;
private static final int ALTO= 200;
private static final int ORIGEN_X= 150;
private static final int ORIGEN_Y= 250;
public JFrameSubclass1 (){
setTitle (“My First Subclass”);
setSize (ANCHO, ALTO);
setLocation (ORIGEN_X, ORIGEN_Y);
setDefaultCloseOperation(EXIT_ON_CLOSE); }
• El JRootPane está
compuesto por un
glassPane, un
contentPane y una barra
de menú opcional.
• El contentPane y la barra
de menú, si existen, son
manejados por un objeto
JLayeredPane
Referencia: java.sun.com
Understanding Containers
©The McGraw-Hill Companies, Inc. Permission
required for reproduction or display. 4th Ed Chapter 14 - 16
Cambiando el color de fondo
Arch fuente:
Ch14JFrameSubclass2
.java
contentPane.setLayout(
new FlowLayout());
okButton = new JButton("OK");
cancelButton
= new JButton("CANCEL");
contentPane.add(okButton);
contentPane.add(cancelButton);
Fuente de Oyente de
evento evento
notify
JButton Handler
register
addActionListener
JButton button = new JButton("OK");
ButtonHandler handler = new ButtonHandler( );
// esta clase se muestra a continuación
button.addActionListener(handler);
class MiManejadorBoton
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
event listener
event source
Oyente de eventos
Fuente de eventos
JLabel
(con un texto)
JLabel
(con una
imágen)
JTextField
Cinco botones
usando
FlowLayout.
.........
public Ch14NestedPanels2( ) {
JPanel guessPanel, hintPanel, controlPanel, buttonPanel;
JButton enterBtn, cancelBtn;
.........
Container contentPane;
contentPane = getContentPane( );
contentPane.setLayout(new GridLayout(3, 1)); //grilla 3
// 1er panel de la grilla
guessPanel = new JPanel();
guessPanel.setBorder(BorderFactory.createTitledBorder(
"Your Guess"));
guessPanel.add(guessEntry = new JTextField(10));
..Cont
©The McGraw-Hill Companies, Inc. Permission
required for reproduction or display. 4th Ed Chapter 14 - 53
cont. paneles HiLo
contentPane.add(guessPanel);
contentPane.add(hintPanel);
contentPane.add(controlPanel);
}
}
©The McGraw-Hill Companies, Inc. Permission
required for reproduction or display. 4th Ed Chapter 14 - 54
Otras componentes GUI comunes
• JCheckBox
– ver Ch14JCheckBoxSample1.java yCh14JCheckBoxSample2.java
• JRadioButton
– ver Ch14JRadioButtonSample.java
• JComboBox
– verCh14JComboBoxSample.java
• JList
– ver Ch14JListSample.java
• JSlider
– ver Ch14JSliderSample.java
implementar la interfase ItemListener para obtener el item elegido
además de ActionListener
if event.getStateChange()==ItemEvent.SELECTED){
System.out.println (“Eligió esta caja”);
}else{
System.out.println (“No eligió esta caja”);
}
}
JMenu
JMenuItem
separator
// Crea un Menu
filemenu = new JMenu (“File”);
// Crea los items de un menu
item = new JMenuItem (“New”);
item.addActionListener (this);
filemenu.add(item);
// Crea una linea separadora
filemenu.addSeparator();