You are on page 1of 27

Actividad # 5

carrera de Autos usando hilos.

Codigo Fuente

package carreraautos;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

ublic class Carrera extends Thread {

private JLabel eti;

private JframeAuto p;

public Carrera(JLabel eti, JframeAuto p){

this.eti=eti;

this.p=p;

@Override

public void run(){

int c1=0, c2=0, c3=0;

while (true) {

try {

sleep((int)(Math.random()*2000));

} catch (InterruptedException ex) {

Logger.getLogger(Carrera.class.getName()).log(Level.SEVERE, null, ex);

c1=p.getlbl1().getLocation().x;

c2=p.getlbl2().getLocation().x;

c3=p.getlbl3().getLocation().x;

if(c1<p.getlbl_barrera().getLocation().x-10&&c2<p.getlbl_barrera().getLocation().x-
10&&c3<p.getlbl_barrera().getLocation().x-10){
eti.setLocation(eti.getLocation().x+10,eti.getLocation().y);

p.repaint();

}else

break;

if (eti.getLocation().x>=p.getlbl_barrera().getLocation().x-10){

if(c1>c2&&c1>c3){

JOptionPane.showMessageDialog(null, "Gano 1");

}else if(c2>c1&&c2>c3){

JOptionPane.showMessageDialog(null, "Gano 2");

}else if(c3>c1&&c3>c2){

JOptionPane.showMessageDialog(null, "Gano 3");

}else{

JOptionPane.showMessageDialog(null, "Empate");

package carreraautos;

import javax.swing.JLabel;

public class JframeAuto extends javax.swing.JFrame {


public JframeAuto() {

initComponents();

public JLabel getlbl1(){

return lbl1;

public JLabel getlbl2(){

return lbl2;

public JLabel getlbl3(){

return lbl3;

public JLabel getlbl_barrera(){

return lbl_barrera;

@SuppressWarnings("unchecked")

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

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

lbl1 = new javax.swing.JLabel();

lbl2 = new javax.swing.JLabel();

lbl_barrera = new javax.swing.JLabel();

lbl3 = new javax.swing.JLabel();

jLabel1 = new javax.swing.JLabel();

btiniciar = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(102, 255, 102));


jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

lbl1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/carreraautos/65f592de-
b068-4482-8f5e-505ddbf7f049.jpg"))); // NOI18N

lbl2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/carreraautos/ae3b3128-
a8df-48be-85c0-8d86aa7fa48f.jpg"))); // NOI18N

lbl_barrera.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(255, 0, 51), 10));

lbl3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/carreraautos/c4910481-
5b0e-4db9-b892-9729967c1426.jpg"))); // NOI18N

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

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

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

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)

.addComponent(lbl1, javax.swing.GroupLayout.PREFERRED_SIZE, 66,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lbl2)

.addComponent(lbl3))

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

.addComponent(lbl_barrera)

.addContainerGap())

);

jPanel1Layout.setVerticalGroup(

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

.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(18, 18, 18)

.addComponent(lbl1)

.addGap(43, 43, 43)

.addComponent(lbl2)

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

.addComponent(lbl3, javax.swing.GroupLayout.PREFERRED_SIZE, 48,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(36, 36, 36))

.addComponent(lbl_barrera, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

);

jLabel1.setText("Carrera de Autos");

btiniciar.setText("Iniciar Carrera");

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

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

btiniciarActionPerformed(evt);

});

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

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

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

.addGroup(layout.createSequentialGroup()

.addContainerGap()

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

.addGroup(layout.createSequentialGroup()

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

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

.addGap(0, 142, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)

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

.addComponent(btiniciar, javax.swing.GroupLayout.PREFERRED_SIZE, 176,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(136, 136, 136))

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

.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 199,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(97, 97, 97))))))

);

layout.setVerticalGroup(

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

.addGroup(layout.createSequentialGroup()

.addGap(4, 4, 4)

.addComponent(jLabel1)

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

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

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

.addComponent(btiniciar)

.addGap(31, 31, 31))

);

pack();

}// </editor-fold>

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


lbl1.setLocation(0,lbl1.getLocation().y);

lbl2.setLocation(0,lbl2.getLocation().y);

lbl3.setLocation(0,lbl3.getLocation().y);

Carrera hilo1=new Carrera(lbl1, this);

Carrera hilo2=new Carrera(lbl2, this);

Carrera hilo3=new Carrera(lbl3, this);

hilo1.start();

hilo2.start();

hilo3.start();

/**

* @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(JframeAuto.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(JframeAuto.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(JframeAuto.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(JframeAuto.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);

//</editor-fold>

/* Create and display the form */

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

public void run() {

new JframeAuto().setVisible(true);

});

// Variables declaration - do not modify

private javax.swing.JButton btiniciar;

private javax.swing.JLabel jLabel1;

private javax.swing.JPanel jPanel1;

private javax.swing.JLabel lbl1;

private javax.swing.JLabel lbl2;

private javax.swing.JLabel lbl3;

private javax.swing.JLabel lbl_barrera;


// End of variables declaration

Captura de Programa
Actividad # 4

Operaciones Básicas utilizando eventos y elementos swing

Codigo Fuente:

public class Operaciones extends javax.swing.JFrame {

public Operaciones() {

initComponents();

this.setLocationRelativeTo(null);

@SuppressWarnings("unchecked")

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

private void initComponents() {

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

jTextField2 = new javax.swing.JTextField();

jTextField3 = new javax.swing.JTextField();

jButton1 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

jMenuBar1 = new javax.swing.JMenuBar();

jMenu5 = new javax.swing.JMenu();

jMenu1 = new javax.swing.JMenu();

jMenuItem1 = new javax.swing.JMenuItem();

jMenu2 = new javax.swing.JMenu();

jMenuItem2 = new javax.swing.JMenuItem();

jMenu3 = new javax.swing.JMenu();

jMenuItem3 = new javax.swing.JMenuItem();

jMenu4 = new javax.swing.JMenu();

jMenuItem4 = new javax.swing.JMenuItem();


setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Primer Numero");

jLabel2.setText("Segundo Numero");

jLabel3.setText("Resultado");

jButton1.setText("Salir");

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

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

jButton1ActionPerformed(evt);

});

jButton3.setText("Nuevo");

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

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

jButton3ActionPerformed(evt);

});

jMenu5.setText("Operaciones Básicas");

jMenu1.setText("Suma");

jMenuItem1.setText("Sumando");

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

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

jMenuItem1ActionPerformed(evt);
}

});

jMenu1.add(jMenuItem1);

jMenu5.add(jMenu1);

jMenu2.setText("Resta");

jMenuItem2.setText("Restando");

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

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

jMenuItem2ActionPerformed(evt);

});

jMenu2.add(jMenuItem2);

jMenu5.add(jMenu2);

jMenu3.setText("Multiplicacion");

jMenuItem3.setText("Multiplicando");

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

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

jMenuItem3ActionPerformed(evt);

});

jMenu3.add(jMenuItem3);

jMenu5.add(jMenu3);

jMenu4.setText("Division");
jMenuItem4.setText("Dividir");

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

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

jMenuItem4ActionPerformed(evt);

});

jMenu4.add(jMenuItem4);

jMenu5.add(jMenu4);

jMenuBar1.add(jMenu5);

setJMenuBar(jMenuBar1);

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

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

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

.addGroup(layout.createSequentialGroup()

.addContainerGap()

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

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel1)

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

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 51,


javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel2)

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

.addComponent(jTextField2))
.addGroup(layout.createSequentialGroup()

.addComponent(jLabel3)

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

.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 51,


javax.swing.GroupLayout.PREFERRED_SIZE)))

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

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

.addContainerGap(36, Short.MAX_VALUE)

.addComponent(jButton3)

.addGap(99, 99, 99)

.addComponent(jButton1)

.addGap(149, 149, 149))

);

layout.setVerticalGroup(

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

.addGroup(layout.createSequentialGroup()

.addGap(24, 24, 24)

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

.addComponent(jLabel1)

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

.addGap(18, 18, 18)

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

.addComponent(jLabel2)

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

.addGap(18, 18, 18)

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

.addComponent(jLabel3)

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

.addGap(47, 47, 47)


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

.addComponent(jButton1)

.addComponent(jButton3))

.addContainerGap(89, Short.MAX_VALUE))

);

pack();

}// </editor-fold>

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

// TODO add your handling code here:

System.exit(0);

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

// TODO add your handling code here:

String num1, num2,resultado;

double val1, val2,suma;

num1 = jTextField1.getText();

num2 = jTextField2.getText();

val1=Double.parseDouble(num1);

val2=Double.parseDouble(num2);

suma= val1 + val2;

resultado=Double.toString(suma);
jTextField3.setText(resultado);

jTextField1.enable(false);

jTextField2.enable(false);

jTextField3.enable(false);

jMenu1.enable(false);

jMenu2.enable(false);

jMenu3.enable(false);

jMenu4.enable(false);

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

// TODO add your handling code here:

String num1, num2,resultado;

double val1, val2,resta;

num1 = jTextField1.getText();

num2 = jTextField2.getText();

val1=Double.parseDouble(num1);

val2=Double.parseDouble(num2);

resta= val1 - val2;


resultado=Double.toString(resta);

jTextField3.setText(resultado);

jTextField3.setText(resultado);

jTextField1.enable(false);

jTextField2.enable(false);

jTextField3.enable(false);

jMenu1.enable(false);

jMenu2.enable(false);

jMenu3.enable(false);

jMenu4.enable(false);

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

// TODO add your handling code here:

String num1, num2,resultado;

double val1, val2,multiplicar;

num1 = jTextField1.getText();

num2 = jTextField2.getText();

val1=Double.parseDouble(num1);

val2=Double.parseDouble(num2);

multiplicar= val1 * val2;


resultado=Double.toString(multiplicar);

jTextField3.setText(resultado);

jTextField1.enable(false);

jTextField2.enable(false);

jTextField3.enable(false);

jMenu1.enable(false);

jMenu2.enable(false);

jMenu3.enable(false);

jMenu4.enable(false);

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

// TODO add your handling code here:

String num1, num2,resultado;

double val1, val2,division;

num1 = jTextField1.getText();

num2 = jTextField2.getText();

val1=Double.parseDouble(num1);

val2=Double.parseDouble(num2);

division= val1 / val2;

resultado=Double.toString(division);
jTextField3.setText(resultado);

jTextField1.enable(false);

jTextField2.enable(false);

jTextField3.enable(false);

jMenu1.enable(false);

jMenu2.enable(false);

jMenu3.enable(false);

jMenu4.enable(false);

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

// TODO add your handling code here:

jTextField1.setText("");

jTextField2.setText("");

jTextField3.setText("");

jTextField1.enable(true);

jTextField2.enable(true);

jTextField1.requestFocus();

jMenu1.enable(true);

jMenu2.enable(true);

jMenu3.enable(true);

jMenu4.enable(true);

/**

* @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(Operaciones.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Operaciones.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Operaciones.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Operaciones.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {

new Operaciones().setVisible(true);

});

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton3;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JMenu jMenu1;

private javax.swing.JMenu jMenu2;

private javax.swing.JMenu jMenu3;

private javax.swing.JMenu jMenu4;

private javax.swing.JMenu jMenu5;

private javax.swing.JMenuBar jMenuBar1;

private javax.swing.JMenuItem jMenuItem1;

private javax.swing.JMenuItem jMenuItem2;

private javax.swing.JMenuItem jMenuItem3;

private javax.swing.JMenuItem jMenuItem4;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jTextField2;

private javax.swing.JTextField jTextField3;

// End of variables declaration

You might also like