CelsiusMain.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CelsiusMain {
public static void main(String[] args) {
//Enviar una tarea al administrador de eventos
//para que cree y muestre la ventana
SwingUtilities.invokeLater
( new Runnable() {
public void run() { crearMostrarVentana(); }
}
);
}
// Metodo para crear una ventana GUI.
private static void crearMostrarVentana() {
//Asegurarse que contenga los decorators de una ventana.
JFrame.setDefaultLookAndFeelDecorated(true);
//se crea la ventana
CelsiusContent ventana = new CelsiusContent();
}
}
CelsiusContent.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CelsiusContent {
//Componentes de la aplicacion.
private JTextField celsiusInput;
private JButton botonConvertir;
private JLabel celsiusLabel;
private JLabel fahrenheitLabel;
// Constructor
public CelsiusContent() {
//crear y configurar la ventana.
JFrame frame = new JFrame("Convertir Celsius a Fahrenheit");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//definir la dimesion de la ventana.
Dimension dimension = new Dimension(320, 100);
frame.setSize(dimension);
//crear los componentes en el panel.
Component panel = crearComponentes();
//agregar el panel al Content Pane.
frame.getContentPane().add(panel);
//configurar el boton por defecto.
//cada vez que se presione enter se invocara este boton
//se define este boton en el Root Pane.
frame.getRootPane().setDefaultButton(botonConvertir);
//mostrar la ventana.
//frame.pack();
frame.setVisible(true);
}
private Component crearComponentes() {
//Creando los componentes de la ventana
celsiusInput = new JTextField(3);
botonConvertir = new JButton("Convertir");
celsiusLabel = new JLabel("Celsius", SwingConstants.LEFT);
fahrenheitLabel = new JLabel("Fahrenheit", SwingConstants.LEFT);
//Se agrega un manejador de eventos
BotonListener listener = new BotonListener();
botonConvertir.addActionListener(listener);
//Se crea un layout para los componentes del panel
LayoutManager layout = new GridLayout(2, 2);
//LayoutManager layout = new FlowLayout();
//crear y configurar el panel contenedor de la ventana.
JPanel panel = new JPanel(layout);
//agregar los componentes al contenedor.
panel.add(celsiusInput);
panel.add(celsiusLabel);
panel.add(botonConvertir);
panel.add(fahrenheitLabel);
//agregar un borde vacio alrededor de los labels
celsiusLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
fahrenheitLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
//agregar un borde vacio alrededor de los componentes de 5 pixeles.
panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
return panel;
}
//Clase interna que es un listener de eventos.
public class BotonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
//obtener el contenido del input
String texto = celsiusInput.getText();
//convertir el texto en un numero
Double celsius = Double.parseDouble(texto);
//convertir celsius a fahrenheit
int fahrenheit = (int)(celsius * 1.8 + 32);
//mostrar los grados fahrenheit en el label
fahrenheitLabel.setText(fahrenheit + " Fahrenheit");
}
}
}
0 comentarios:
Publicar un comentario