You are on page 1of 16

Practica 3_Pacheco Pérez Pedro_1TV5

En esta practica usamos nuevas cosas, como lo son las interfaces gráficas, a su
vez utilizamos algunas otras funciones o métodos anteriores pero ahora enfocado
en las ventanas gráficas, usamos botones, cajas de texto, etiquetas, combobox,
también usamos la librería JOptionPane para desplegar el mensaje con los datos
deseados, el programa esta hecho principalmente para calucular el predial de un
terreno.
Main JForm
import javax.swing.JOptionPane;

public class CalTerreno extends javax.swing.JFrame {

/**

* Creates new form CalTerreno

*/

public CalTerreno() {

initComponents();

terreno = new Terreno();

casa = new Construccion();

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

lblAncho = new javax.swing.JLabel();

lblLargo = new javax.swing.JLabel();

txtAncho = new javax.swing.JTextField();

txtLargo = new javax.swing.JTextField();

cbPrecios = new javax.swing.JComboBox<>();


lblPrecio = new javax.swing.JLabel();

btnCalcular = new javax.swing.JButton();

lblAntigüedad = new javax.swing.JLabel();

lblConstruccion = new javax.swing.JLabel();

lblDatosTerreno = new javax.swing.JLabel();

lblDatosConstruccion = new javax.swing.JLabel();

txtAntigüedad = new javax.swing.JTextField();

txtConstruccion = new javax.swing.JTextField();

lblAños = new javax.swing.JLabel();

lblMAncho = new javax.swing.JLabel();

lblMLargo = new javax.swing.JLabel();

lblMConstruccion = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

lblAncho.setText("ANCHO:");

lblLargo.setText("LARGO:");

txtAncho.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

txtAncho.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

txtAnchoActionPerformed(evt);

});

txtLargo.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

txtLargo.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {


txtLargoActionPerformed(evt);

});

cbPrecios.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "$1245",


"$1295", "$1308" }));

cbPrecios.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

cbPreciosActionPerformed(evt);

});

lblPrecio.setText("Precio por m²: ");

btnCalcular.setText("Calcular");

btnCalcular.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnCalcularActionPerformed(evt);

});

lblAntigüedad.setText("ANTIGÜEDAD:");

lblConstruccion.setText("AREA DE CONSTRUCCIÓN :");

lblDatosTerreno.setText("DATOS DEL TERRENO");

lblDatosConstruccion.setText("DATOS DE CONSTRUCCIÓN");

txtAntigüedad.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
txtConstruccion.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

lblAños.setText("AÑOS.");

lblMAncho.setText("m.");

lblMLargo.setText("m.");

lblMConstruccion.setText("m².");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(54, 54, 54)

.addComponent(lblDatosTerreno)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(lblDatosConstruccion)

.addGap(86, 86, 86))

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(20, 20, 20)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(lblAncho)

.addComponent(lblLargo)

.addComponent(lblPrecio))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(cbPrecios, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(txtAncho, javax.swing.GroupLayout.PREFERRED_SIZE, 100,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(lblMAncho))

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(txtLargo, javax.swing.GroupLayout.PREFERRED_SIZE, 100,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(lblMLargo)))

.addGap(52, 52, 52)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(lblConstruccion)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(txtConstruccion, javax.swing.GroupLayout.PREFERRED_SIZE,
100, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(lblAntigüedad)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(txtAntigüedad, javax.swing.GroupLayout.PREFERRED_SIZE, 100,


javax.swing.GroupLayout.PREFERRED_SIZE)))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(lblAños)

.addComponent(lblMConstruccion))))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(btnCalcular, javax.swing.GroupLayout.PREFERRED_SIZE, 98,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(235, 235, 235))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(lblDatosTerreno)

.addComponent(lblDatosConstruccion))

.addGap(19, 19, 19)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(lblAncho)

.addComponent(txtAncho, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lblAntigüedad)

.addComponent(txtAntigüedad, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lblAños)

.addComponent(lblMAncho))

.addGap(40, 40, 40)


.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(lblLargo)

.addComponent(txtLargo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lblConstruccion)

.addComponent(txtConstruccion, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lblMLargo)

.addComponent(lblMConstruccion))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25,
Short.MAX_VALUE)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(lblPrecio)

.addComponent(cbPrecios, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(34, 34, 34)

.addComponent(btnCalcular, javax.swing.GroupLayout.PREFERRED_SIZE, 46,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(35, 35, 35))

);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(23, 23, 23)

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(28, Short.MAX_VALUE))
);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(25, 25, 25)

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(24, Short.MAX_VALUE))

);

pack();

}// </editor-fold>

private void txtLargoActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

private void cbPreciosActionPerformed(java.awt.event.ActionEvent evt) {

private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt) {

String dinero = cbPrecios.getSelectedItem().toString();

terreno.precio = dinero;

terreno.ancho = Double.parseDouble(txtAncho.getText());

terreno.largo = Double.parseDouble(txtLargo.getText());

casa.antigüedad = Double.parseDouble(txtAntigüedad.getText());

casa.metrosCuadrados = Double.parseDouble(txtConstruccion.getText());

double area = terreno.Area(terreno.largo,terreno.ancho);

double precioTerreno = terreno.ValorTerreno(area);


double valorConstruccion =
casa.ObtenerValorConstruccion(casa.metrosCuadrados,casa.antigüedad);

double valorCatastral = terreno.ValorCatastral(valorConstruccion, precioTerreno);

double total;

total = valorCatastral * .1475;

JOptionPane.showMessageDialog(null,"Area: "+area+"m²\n"+"Valor del suelo:


"+"$"+precioTerreno+"\nValor de la Construcción: $"+valorConstruccion+"\nValor Catastral:
$"+valorCatastral+"\n\tPredial a pagar: $"+total );

private void txtAnchoActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info :


javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(CalTerreno.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(CalTerreno.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(CalTerreno.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(CalTerreno.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new CalTerreno().setVisible(true);

});

Terreno terreno;

Construccion casa;

// Variables declaration - do not modify

private javax.swing.JButton btnCalcular;

private javax.swing.JComboBox<String> cbPrecios;

private javax.swing.JPanel jPanel1;


private javax.swing.JLabel lblAncho;

private javax.swing.JLabel lblAntigüedad;

private javax.swing.JLabel lblAños;

private javax.swing.JLabel lblConstruccion;

private javax.swing.JLabel lblDatosConstruccion;

private javax.swing.JLabel lblDatosTerreno;

private javax.swing.JLabel lblLargo;

private javax.swing.JLabel lblMAncho;

private javax.swing.JLabel lblMConstruccion;

private javax.swing.JLabel lblMLargo;

private javax.swing.JLabel lblPrecio;

private javax.swing.JTextField txtAncho;

private javax.swing.JTextField txtAntigüedad;

private javax.swing.JTextField txtConstruccion;

private javax.swing.JTextField txtLargo;

// End of variables declaration

}
Clase Terreno
public class Terreno {

public double largo;

public double ancho;

public String precio;

public double Area(double largo, double ancho){

double area;

largo = this.largo;

ancho = this.ancho;

area = largo*ancho;

return area;

public double ValorTerreno(double area){

double valor = 0;

switch(this.precio){

case "$1245" -> {

valor = area * 1245;

return valor;

case "$1295" -> {

valor = area * 1295;

return valor;

case "$1308" -> {

valor = area * 1308;

return valor;

return valor;
}

public double ValorCatastral(double valorConstruccion, double valorTerreno){

double catastral;

catastral = valorConstruccion + valorTerreno;

return catastral;

Clase Construcción
public class Construccion {

public double metrosCuadrados;

public double antigüedad;

public double ObtenerValorConstruccion(double metrosCuadrados, double antigüedad){

metrosCuadrados = this.metrosCuadrados;

antigüedad = this.antigüedad;

double descuento;

double valorConstruccion;

valorConstruccion = metrosCuadrados * 1923;

descuento = antigüedad * .8;

if(descuento>40){

valorConstruccion = valorConstruccion - (.4*valorConstruccion);

return valorConstruccion;

}else{

valorConstruccion = valorConstruccion - ((descuento/100)*(valorConstruccion));

return valorConstruccion;
}

Capturas del funcionamiento


Conclusión
En efecto, fue una practica interesante y bien planteada que nos permitioe
experimentar con codigos ya utilizados anteriormente los cuales nos brindaron
reforzamiento con las interfaces graficas y de mas

You might also like