viernes, 30 de octubre de 2015

Poner un botón en una ventana en Java

En esta entrada os traigo el código para que podamos poner un botón o todos los que queramos en nuestras ventanas.

En este primer post vamos a crear la ventana usando lo que ya vimos en Crear una Ventana y veremos lo fácil que es, con unas pocas líneas de código, añadirle un botón. 

Vamos a añadir el botón en una posición determinada y de una forma determinada pero todavía no le vamos a añadir ninguna función, es decir, haremos clic sobre él pero no pasará nada. En post sucesivos iremos viendo como añadirle funciones y mas aspectos de personalización.

Primero os dejo una captura de pantalla de cómo queda la ventana con el botón:

ventana con botón en java con bluej
Botón en Java con Bluej


Cómo vemos es un botón normal de nombre Button1, pero cómo veremos en posteriores post lo podremos poner en 3D, cambiar de color, nombre, tamaño, forma, añadir funciones, tipo de letra del nombre, etc.

Ahora os dejo el código de la ventana y el botón conforme están en la imagen anterior:


Código Fuente:

import javax.swing.UIManager.LookAndFeelInfo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.border.Border;
import javax.swing.*;


public class GUI_project extends JFrame {

private JButton button1;

//Constructor 
public GUI_project(){

this.setTitle("JuegoSoftware.com");
this.setSize(500,400);
//pane with null layout
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500,400));
contentPane.setBackground(new Color(192,192,192));


button1 = new JButton();
button1.setBounds(33,41,314,188);
button1.setBackground(new Color(214,217,223));
button1.setForeground(new Color(0,0,0));
button1.setEnabled(true);
button1.setFont(new Font("sansserif",0,12));
button1.setText("Button1");
button1.setVisible(true);

//adding components to contentPane panel
contentPane.add(button1);

//adding panel to JFrame and seting of window position and close operation
this.add(contentPane);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.pack();
this.setVisible(true);
}

public static void main(String[] args){
System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new GUI_project();
}
});
}

}




El código está suficientemente comentado pero si tenéis alguna duda o no sabéis para que se usa alguna cosa no dudéis en ponerlo en los comentarios.

Saludos a tod@s!!


domingo, 25 de octubre de 2015

Entrenamiento de Series en Suunto Ambit3

El Suunto Ambit3 permite la creación de Apps para poder "modificarlo" y "personalizarlo" a nuestros gustos.

Aquí os traigo el código fuente para que podáis crear una app de un entrenamiento de series, un interval training. En concreto se trata de un entrenamiento que consiste en lo siguiente:

1km+1000x4/0'5km+1km

Es 1km de calentamiento, 4 series de 1km con 0'5km de descanso entre ellas y finalizar con 1km de vuelta a la calma.

Lo único que tenéis que hacer es entrar en movescount, app designer y pegar el código fuente que os pongo aquí abajo. Una vez hecho eso ya tendréis vuestra app lista para usar en cualquier modo de deporte que queráis.

Si queréis alguna modificación cómo poner más series, más descanso entre ellas, más calentamiento etc, decirlo en los comentarios y con mucho gusto os pondré el código. Si tenéis alguna duda de cómo funciona decirlo también y os lo explicaré con mucho gusto.

Saludos a tod@s!!


Código de la App:

/* Duration App */
/* Series 1000 */

/* Initialize variables */
if (SUUNTO_DURATION == 0) {
  RESULT = 0;
}

/* Lap 1 is step type WarmUp with duration type Distance */
if (SUUNTO_LAP_NUMBER == 1) {
  prefix = "wu";
  postfix = "m";
  RESULT = 1000 - (SUUNTO_LAP_DISTANCE * 1000);
}

/* Lap 2, 4, 6, 8 is step type Interval with duration type Distance */
if (SUUNTO_LAP_NUMBER == 2 || SUUNTO_LAP_NUMBER == 4 || SUUNTO_LAP_NUMBER == 6 || SUUNTO_LAP_NUMBER == 8) {
  prefix = "int";
  postfix = "m";
  RESULT = 1000 - (SUUNTO_LAP_DISTANCE * 1000);
}

/* Lap 3, 5, 7, 9 is step type Recovery with duration type Distance */
if (SUUNTO_LAP_NUMBER == 3 || SUUNTO_LAP_NUMBER == 5 || SUUNTO_LAP_NUMBER == 7 || SUUNTO_LAP_NUMBER == 9) {
  prefix = "rec";
  postfix = "m";
  RESULT = 500 - (SUUNTO_LAP_DISTANCE * 1000);
}

/* Lap 10 is step type CoolDown with duration type Distance */
if (SUUNTO_LAP_NUMBER == 10) {
  prefix = "cd";
  postfix = "m";
  RESULT = 1000 - (SUUNTO_LAP_DISTANCE * 1000);
}

/* Check if duration is reached */
if (RESULT < 0) {
  RESULT = 0;
  /* Alert that duration is reached */
  Suunto.alarmBeep();
}