para hacerlo desde ubuntu bastara hacerlo por apt-get asi:
$ sudo apt-get install mysql-server
después les regalo el video sobre ubuntu
$ sudo apt-get install mysql-server
después les regalo el video sobre ubuntu
public class Articulo {
private float precio;
public void setPrecio() {
precio = 3.50;
}
public void setPrecio(float nuevoPrecio) {
precio = nuevoPrecio;
}
public void setPrecio(float costo, int porcentajeGanancia) {
precio = costo + (costo * porcentajeGanancia);
}
}
class Figura {
protected double area;
protected double perimetro;
public Figura() {
this.area=0;
this.perimetro=0;
}
public double getArea() {
return area;
}
public double getPerimetro() {
return perimetro;
}
public void calcularArea(){}
public void calcularPerimetro(){}
}
public class Circulo extends Figura {
private double radio;
public Circulo() {
super();
}
public double getRadio() {
return radio;
}
public void setRadio(double radio) {
this.radio = radio;
}
public void calcularArea() {
this.area = Math.PI*Math.pow(this.radio,2.0);
}
public void calcularPerimetro() {
this.perimetro = 2*Math.PI*this.radio;
}
}
class Mamifero {
public void mover() {
System.out.println("Ahora es un mamifero el que se mueve");
}
}
class Perro extends Mamifero {
public void mover() {
System.out.println("Ahora es un perro el que se mueve");
}
}
class Gato extends Mamifero {
public void mover() {
System.out.println("Ahora es un gato el que se mueve");
}
}
public class Polimorfismo {
public static void muevete(Mamifero m) {
m.mover();
}
public static void main(String[] args) {
Gato bisho = new Gato();
Perro feo = new Perro();
muevete(bisho);
muevete(feo);
}
}
public abstract class Instrumento {
public Instrumento() { }
public abstract void tocar();
public abstract void tocar(String nota);
public abstract void afinar();
}
public class Cuerda extends Instrumento{
public Cuerda() {}
public void afinar() {
System.out.println("Cuerda.afinar()");
}
public void tocar() {
System.out.println("Cuerda.tocar()");
}
public void tocar(String nota){
System.out.println("Cuerda.tocar()"+nota);
}
}
public class Percusion extends Instrumento{
public Percusion() {}
public void afinar() {
System.out.println("Percusion.afinar()");
}
public void tocar() {
System.out.println("Percusion.tocar()");
}
public void tocar(String nota){
System.out.println("Percusion.tocar()"+nota);
}
}
public class Viento extends Instrumento{
public Viento() {}
public void afinar() {
System.out.println("Viento.afinar()");
}
public void tocar() {
System.out.println("Viento.tocar()");
}
public void tocar(String nota){
System.out.println("Viento.tocar()"+nota);
}
}
public class LigaduraDinamica {
public static void main(String[] args){
String[] notas = {"Do","Re","Mi","Fa","Sol","La","Si"};
Instrumento orquesta[] = new Instrumento[10];
for(int i=0;i<10 br="" i=""> orquesta[i]=generarInstrumento(new java.util.Random().nextInt(3));
}
for(int i=0;i<10 br="" i=""> afinarInstrumento(orquesta[i]);
}
for(int i=0;i<10 br="" i=""> tocarInstrumento(orquesta[i]);
}
for(int i=0;i<10 br="" i=""> tocarInstrumento(orquesta[i],notas[i%7]);
}
}
public static Instrumento generarInstrumento(int i){
switch(i){
default:
case 0:
return new Viento();
case 1:
return new Percusion();
case 2:
return new Cuerda();
}
}
public static void afinarInstrumento(Instrumento o){
o.afinar();
}
public static void tocarInstrumento(Instrumento o){
o.tocar();
}
public static void tocarInstrumento(Instrumento o,String nota){
o.tocar(nota);
}
}
10>10>10>10>
abstract public class Sistema {
protected int numeroA;
protected int numeroB;
protected int resultado;
protected char operacion;
protected int base;
public Sistema() {
this.numeroA = 0;
this.numeroB = 0;
this.resultado = 0;
this.operacion = ' ';
}
public void setNumeroA(int n){
this.numeroA = n;
}
public void setNumeroB(int n){
this.numeroB = n;
}
public void setResultado(int n){
this.resultado = n;
}
public void setOperacion(char o){
this.operacion = o;
}
public int getNumeroA(){
return this.numeroA;
}
public int getNumeroB(){
return this.numeroB;
}
public int getResultado(){
return this.resultado;
}
public char getOperacion(){
return this.operacion;
}
public void suma(){
this.resultado = this.numeroA + this.numeroB;
}
public void resta(){
this.resultado = this.numeroA - this.numeroB;
}
public void multiplicacion(){
this.resultado = this.numeroA * this.numeroB;
}
public void division(){
this.resultado = this.numeroA / this.numeroB;
}
public void establecerNumeroA(String a){
int n = Integer.parseInt(a,base);
this.setNumeroA(n);
}
public void establecerNumeroB(String b){
int n = Integer.parseInt(b,base);
this.setNumeroB(n);
}
public String retornarNumeroA(){
String cad="";
switch(base){
case 2:
cad = Integer.toBinaryString(numeroA);
break;
case 8:
cad = Integer.toOctalString(numeroA);
break;
case 10:
cad = String.valueOf(numeroA);
break;
case 16:
cad = Integer.toHexString(numeroA);
break;
}
return cad;
}
public String retornarNumeroB(){
String cad="";
switch(base){
case 2:
cad = Integer.toBinaryString(numeroB);
break;
case 8:
cad = Integer.toOctalString(numeroB);
break;
case 10:
cad = String.valueOf(numeroB);
break;
case 16:
cad = Integer.toHexString(numeroB);
break;
}
return cad;
}
public String retornarResultado(){
String cad="";
switch(base){
case 2:
cad = Integer.toBinaryString(resultado);
break;
case 8:
cad = Integer.toOctalString(resultado);
break;
case 10:
cad = String.valueOf(resultado);
break;
case 16:
cad = Integer.toHexString(resultado);
break;
}
return cad;
}
}
public class Binario extends Sistema{
public Binario() {
this.base=2;
}
}
public class Octal extends Sistema{
public Octal() {
this.base=8;
}
}
public class Decimal extends Sistema{
public Decimal() {
this.base=10;
}
}
public class Hexadecimal extends Sistema{
public Hexadecimal() {
this.base=16;
}
}
public class Conversion {
public Integer fromHexadecimal(String cad){
return Integer.parseInt(cad,16);
}
public Integer fromOctal(String cad){
return Integer.parseInt(cad,8);
}
public Integer fromBinario(String cad){
return Integer.parseInt(cad,2);
}
public String toHexadecimal(int i){
return Integer.toHexString(i);
}
public String toOctal(int i){
return Integer.toOctalString(i);
}
public String toBinario(int i){
return Integer.toBinaryString(i);
}
public String combertirSistema(int actual,int nuevo, String cad){
String res = "";
int num=0;
if(cad.length()>0){
switch(actual){
case 2:
num = fromBinario(cad);
break;
case 8:
num = fromOctal(cad);
break;
case 10:
num = Integer.parseInt(cad,10);
break;
case 16:
num = fromHexadecimal(cad);
break;
}
switch(nuevo){
case 2:
res = toBinario(num);
break;
case 8:
res = toOctal(num);
break;
case 10:
res = Integer.toString(num);
break;
case 16:
res = toHexadecimal(num);
break;
}
}
return res;
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import co.edu.udistrital.prycalculadora.logica.*;
public class AppCalculadora implements ActionListener{
private JFrame frame;
private ButtonGroup btgSistema;
private JButton[] btnBotones;
private JRadioButton[] jrbSistemas;
private JTextField txtResultado;
private Container cpane;
int s;
Sistema d;
Conversion c;
public AppCalculadora() {
initComponents();
}
private void initComponents(){
s=10;
d = new Decimal();
c = new Conversion();
frame = new JFrame("Calculadora de Cuatro Sistemas") ;
btgSistema = new ButtonGroup();
btnBotones = new JButton[24];
jrbSistemas = new JRadioButton[4] ;
txtResultado = new JTextField(0);
int cont=0;
btnBotones[cont++]=new JButton("D");
btnBotones[cont++]=new JButton("E");
btnBotones[cont++]=new JButton("F");
btnBotones[cont++]=new JButton("/");
btnBotones[cont++]=new JButton("A");
btnBotones[cont++]=new JButton("B");
btnBotones[cont++]=new JButton("C");
btnBotones[cont++]=new JButton("*");
btnBotones[cont++]=new JButton("7");
btnBotones[cont++]=new JButton("8");
btnBotones[cont++]=new JButton("9");
btnBotones[cont++]=new JButton("-");
btnBotones[cont++]=new JButton("4");
btnBotones[cont++]=new JButton("5");
btnBotones[cont++]=new JButton("6");
btnBotones[cont++]=new JButton("+");
btnBotones[cont++]=new JButton("1");
btnBotones[cont++]=new JButton("2");
btnBotones[cont++]=new JButton("3");
btnBotones[cont++]=new JButton("=");
btnBotones[cont++]=new JButton("0");
btnBotones[cont++]=new JButton("Acerca de ... ");
btnBotones[cont++]=new JButton("Cl");
btnBotones[cont++]=new JButton("CE");
cont=0;
jrbSistemas[cont++]=new JRadioButton("BIN");
jrbSistemas[cont++]=new JRadioButton("OCT");
jrbSistemas[cont++]=new JRadioButton("DEC");
jrbSistemas[cont++]=new JRadioButton("HEX");
for(int i=0;i<jrbSistemas.length;i++){
btgSistema.add(jrbSistemas[i]);
}
cpane = frame.getContentPane();
cpane.setLayout(null);
txtResultado.setBounds(10,10,260,30);
txtResultado.setEditable(false);
txtResultado.setBackground(Color.white);
txtResultado.setHorizontalAlignment(JTextField.RIGHT);
cpane.add(txtResultado);
int x=10;
int y=45;
for(int i=0;i<jrbSistemas.length;i++){
x=i*70+10;
jrbSistemas[i].setBounds(x,y,60,20);
jrbSistemas[i].addActionListener(this);
cpane.add(jrbSistemas[i]);
}
x=10;
y=35;
for(int i=0;i<btnBotones.length;i++){
if(i%4==0){
x=10;
y+=35;
}else{
x+=70;
}
if(i!=20 && i!=21){
btnBotones[i].setBounds(x,y,50,30);
}else{
if(i==20)
btnBotones[i].setBounds(x,y,120,30);
if(i==21)
btnBotones[i].setBounds(10,y+35,260,30);
}
btnBotones[i].addActionListener(this);
cpane.add(btnBotones[i]);
}
jrbSistemas[2].setSelected(true);
elegirSistema(10);
frame.pack();
frame.setSize(290,350);
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void elegirSistema(int sistema){
for(int i=0;i<btnBotones.length;i++){
if(!btnBotones[i].getText().equals("+")&&
!btnBotones[i].getText().equals("-")&&
!btnBotones[i].getText().equals("*")&&
!btnBotones[i].getText().equals("/")&&
!btnBotones[i].getText().equals("=")){
btnBotones[i].setEnabled(false);
}
}
switch(sistema){
case 2:
for(int i=0;i<btnBotones.length;i++){
if(!btnBotones[i].getText().equals("A")&&
!btnBotones[i].getText().equals("B")&&
!btnBotones[i].getText().equals("C")&&
!btnBotones[i].getText().equals("D")&&
!btnBotones[i].getText().equals("E")&&
!btnBotones[i].getText().equals("F")&&
!btnBotones[i].getText().equals("9")&&
!btnBotones[i].getText().equals("8")&&
!btnBotones[i].getText().equals("7")&&
!btnBotones[i].getText().equals("6")&&
!btnBotones[i].getText().equals("5")&&
!btnBotones[i].getText().equals("4")&&
!btnBotones[i].getText().equals("3")&&
!btnBotones[i].getText().equals("2")){
btnBotones[i].setEnabled(true);
}
}
break;
case 8:
for(int i=0;i<btnBotones.length;i++){
if(!btnBotones[i].getText().equals("A")&&
!btnBotones[i].getText().equals("B")&&
!btnBotones[i].getText().equals("C")&&
!btnBotones[i].getText().equals("D")&&
!btnBotones[i].getText().equals("E")&&
!btnBotones[i].getText().equals("F")&&
!btnBotones[i].getText().equals("9")&&
!btnBotones[i].getText().equals("8")){
btnBotones[i].setEnabled(true);
}
}
break;
case 10:
for(int i=0;i<btnBotones.length;i++){
if(!btnBotones[i].getText().equals("A")&&
!btnBotones[i].getText().equals("B")&&
!btnBotones[i].getText().equals("C")&&
!btnBotones[i].getText().equals("D")&&
!btnBotones[i].getText().equals("E")&&
!btnBotones[i].getText().equals("F")){
btnBotones[i].setEnabled(true);
}
}
break;
case 16:
for(int i=0;i<btnBotones.length;i++){
btnBotones[i].setEnabled(true);
}
break;
}
txtResultado.setText(c.combertirSistema(s, sistema, txtResultado.getText()));
s=sistema;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
AppCalculadora c = new AppCalculadora();
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Cl")||e.getActionCommand().equals("CE")){
txtResultado.setText("");
}
if(e.getActionCommand().equals("BIN")){
elegirSistema(2);
d = new Binario();
}
if(e.getActionCommand().equals("OCT")){
elegirSistema(8);
d = new Octal();
}
if(e.getActionCommand().equals("DEC")){
elegirSistema(10);
d = new Decimal();
}
if(e.getActionCommand().equals("HEX")){
elegirSistema(16);
d = new Hexadecimal();
}
if(!e.getActionCommand().equals("+")&&
!e.getActionCommand().equals("-")&&
!e.getActionCommand().equals("*")&&
!e.getActionCommand().equals("/")&&
!e.getActionCommand().equals("=")&&
!e.getActionCommand().equals("Acerca de ... ")&&
!e.getActionCommand().equals("Cl")&&
!e.getActionCommand().equals("CE")&&
!e.getActionCommand().equals("BIN")&&
!e.getActionCommand().equals("OCT")&&
!e.getActionCommand().equals("DEC")&&
!e.getActionCommand().equals("HEX")){
txtResultado.setText(txtResultado.getText()+e.getActionCommand());
}
if(e.getActionCommand().equals("+")||
e.getActionCommand().equals("-")||
e.getActionCommand().equals("*")||
e.getActionCommand().equals("/")){
d.setOperacion(e.getActionCommand().charAt(0));
switch(s){
case 2:
d.establecerNumeroA(txtResultado.getText());
break;
case 8:
d.setNumeroA(c.fromOctal(txtResultado.getText()));
break;
case 10:
d.setNumeroA(Integer.parseInt(txtResultado.getText()));
break;
case 16:
d.setNumeroA(c.fromHexadecimal(txtResultado.getText()));
break;
}
txtResultado.setText("");
}
if(e.getActionCommand().equals("=")){
switch(s){
case 2:
d.setNumeroB(c.fromBinario(txtResultado.getText()));
break;
case 8:
d.setNumeroB(c.fromOctal(txtResultado.getText()));
break;
case 10:
d.setNumeroB(Integer.parseInt(txtResultado.getText()));
break;
case 16:
d.setNumeroB(c.fromHexadecimal(txtResultado.getText()));
break;
}
switch(d.getOperacion()){
case '+':
d.suma();
break;
case '-':
d.resta();
break;
case '*':
d.multiplicacion();
break;
case '/':
d.division();
break;
}
switch(s){
case 2:
txtResultado.setText(c.toBinario(d.getResultado()));
break;
case 8:
txtResultado.setText(c.toOctal(d.getResultado()));
break;
case 10:
txtResultado.setText(String.valueOf(d.getResultado()));
break;
case 16:
txtResultado.setText(c.toHexadecimal(d.getResultado()));
break;
}
}
if(e.getActionCommand().equals("Acerca de ... ")){
JOptionPane.showMessageDialog(null, "Calculadora de ejemplo");
}
}
}
import java.util.*;
import java.util.Random;
java.util.Vector v = new java.util.Vector();
mipaquete.Vector v = new mipaquete.Vector();
package co.edu.udistrital.miproyecto.logica;
Clase Sub-clases Paquete Fuera del paquete
default si si si no
public si si si si
protected si si no no
private si no no no
public class Cronometro {
Horas h;
Minutos m;
Segundos s;
String cadena;
int seg,min,hor;
public Cronometro() {
seg=0;
min=0;
hor=0;
h = new Horas();
m = new Minutos();
s = new Segundos();
cadena = new String("0 : 0 : 0");
}
public String avanzar(){
seg = s.forward();
if(seg==0){
min=m.forward();
if(min==0){
hor=h.forward();
}
}
cadena = hor + " : " + min + " : " + seg;
return cadena;
}
public String reset(){
seg = s.reset();
min = m.reset();
hor = h.reset();
cadena = hor + " : " + min + " : " + seg;
return cadena;
}
}
public class UnidadDeTiempo {
int valor;
int tope;
public int forward(){
if(valor == tope)
valor=0;
else
valor++;
return valor;
}
public int reset(){
valor=0;
return valor;
}
}
public class Horas extends UnidadDeTiempo{
public Horas() {
this.valor=0;
this.tope=23;
}
}

Este .jar es el que nos va permitir conectarnos con mysql y hacer consultas a la base de datos.
package co.madesoft.db;
import java.sql.*;
/**
* Clase que permite conectar con la base de datos
* @author alejo
*/
public class DbConnection {
static String bd = "clase";
static String login = "root";
static String password = "";
static String url = "jdbc:mysql://localhost/"+bd;
Connection conn = null;
/** Constructor de DbConnection */
public DbConnection() {
try{
//obtenemos el driver de para mysql
Class.forName("com.mysql.jdbc.Driver");
//obtenemos la conexión
conn = DriverManager.getConnection(url,login,password);
if (conn!=null){
System.out.println("Conección a base de datos "+bd+" OK");
}
}catch(SQLException e){
System.out.println(e);
}catch(ClassNotFoundException e){
System.out.println(e);
}
}
/**Permite retornar la conexión*/
public Connection getConnection(){
return conn;
}
public void desconectar(){
conn = null;
}
}
package co.madesoft.db;
import java.sql.*;
public class DbEstudiante {
DbConnection cn;
/** Constructor de DbUser */
public DbEstudiante() {
cn = new DbConnection();
}
/** Obtiene las notas de un estudiante por su codigo */
public Object[][] getNotasByEstudiante(String cod){
int registros = 0;
try{
Statement stm = cn.getConnection().createStatement();
PreparedStatement pstm = cn.getConnection().prepareStatement("SELECT count(1) as cont" +
" FROM asignatura a " +
" inner join nota n on a.asi_codigo = n.asi_codigo" +
" where n.est_codigo = ? ");
pstm.setString(1, cod);
ResultSet res = pstm.executeQuery();
res.next();
registros = res.getInt("cont");
res.close();
}catch(SQLException e){
System.out.println(e);
}
Object [][] data = new Object[registros][5];
try{
Statement stm = cn.getConnection().createStatement();
PreparedStatement pstm = cn.getConnection().prepareStatement("SELECT n.asi_codigo, " +
" a.asi_nombre, " +
" n.nota " +
" FROM asignatura a " +
" inner join nota n on a.asi_codigo = n.asi_codigo " +
" where n.est_codigo = ? order by n.asi_codigo ");
pstm.setString(1, cod);
ResultSet res = pstm.executeQuery();
int i = 0;
while(res.next()){
String asiCodigo = res.getString("asi_codigo");
String asiNombre = res.getString("asi_nombre");
Double asiNota = res.getDouble("nota");
data[i][0] = asiCodigo;
data[i][1] = asiNombre;
data[i][2] = asiNota;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return data;
}
/** trae todos los estudiantes */
public Object[][] getEstudiantes(){
int registros = 0;
try{
Statement stm = cn.getConnection().createStatement();
PreparedStatement pstm = cn.getConnection().prepareStatement("SELECT count(1) as cont" +
" FROM estudiante ");
ResultSet res = pstm.executeQuery();
res.next();
registros = res.getInt("cont");
res.close();
}catch(SQLException e){
System.out.println(e);
}
Object [][] data = new Object[registros][5];
try{
Statement stm = cn.getConnection().createStatement();
PreparedStatement pstm = cn.getConnection().prepareStatement("SELECT est_codigo, " +
" est_nombre " +
" FROM estudiante " +
" ORDER BY est_codigo ");
ResultSet res = pstm.executeQuery();
int i = 0;
while(res.next()){
String estCodigo = res.getString("est_codigo");
String estNombre = res.getString("est_nombre");
data[i][0] = estCodigo;
data[i][1] = estNombre;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return data;
}
}
package co.madesoft.gui;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import co.madesoft.db.*;
public class GuiEstudiante implements ActionListener {
JFrame frame;
JScrollPane spEstudiantes,spNotas;
DefaultTableModel dtmEstudiantes,dtmNotas;
JTable jtbEstudiantes,jtbNotas;
JPanel pnlEstudiantes;
JLabel lblCodigo,lblNombre;
JTextField txtCodigo,txtNombre;
Object[][] dtEstudiantes;
Object[][] dtNotas;
DbEstudiante us = new DbEstudiante();
int fila = -1;
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
GuiEstudiante g = new GuiEstudiante();
}
public GuiEstudiante(){
frame = new JFrame("Notas de estudiantes");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
dtEstudiantes = us.getEstudiantes();
String[] columNames = {"codigo","nombres"};
dtmEstudiantes= new DefaultTableModel(dtEstudiantes, columNames);
String[] columNamesNotas = {"codigo","asignatura","nota"};
dtmNotas = new DefaultTableModel(dtNotas,columNamesNotas);
jtbEstudiantes = new JTable(dtmEstudiantes);
jtbEstudiantes.setPreferredScrollableViewportSize(new Dimension(500, 120));
jtbNotas = new JTable(dtmNotas);
jtbNotas.setPreferredScrollableViewportSize(new Dimension(500,80));
spEstudiantes = new JScrollPane(jtbEstudiantes);
spNotas = new JScrollPane(jtbNotas);
lblCodigo = new JLabel("Codigo");
lblNombre = new JLabel("Nombre");
txtCodigo = new JTextField(10);
txtNombre = new JTextField(10);
pnlEstudiantes = new JPanel(new GridLayout(2,2));
pnlEstudiantes.add(lblCodigo);
pnlEstudiantes.add(txtCodigo);
pnlEstudiantes.add(lblNombre);
pnlEstudiantes.add(txtNombre);
jtbEstudiantes.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
fila = jtbEstudiantes.rowAtPoint(e.getPoint());
int columna = jtbEstudiantes.columnAtPoint(e.getPoint());
if ((fila > -1) && (columna > -1)){
txtCodigo.setText(String.valueOf(jtbEstudiantes.getValueAt(fila,0)));
txtNombre.setText(String.valueOf(jtbEstudiantes.getValueAt(fila,1)));
dtNotas = us.getNotasByEstudiante(String.valueOf(jtbEstudiantes.getValueAt(fila,0)));
int contRows = dtmNotas.getRowCount();
for(int i=0;i<contRows;i++){
dtmNotas.removeRow(0);
}
for(int i=0;i<dtNotas.length;i++){
Object[] newRow={dtNotas[i][0],dtNotas[i][1],dtNotas[i][2]};
dtmNotas.addRow(newRow);
}
}
}
});
frame.getContentPane().add(spEstudiantes,BorderLayout.NORTH);
frame.getContentPane().add(pnlEstudiantes,BorderLayout.CENTER);
frame.getContentPane().add(spNotas,BorderLayout.SOUTH);
frame.pack();
frame.setResizable(false);
frame.setLocationRelativeTo(frame.getParent());
frame.setVisible(true);
}
public void limpiarCampos(){
txtCodigo.setText("");
txtNombre.setText("");
}
public void actionPerformed(ActionEvent e){
int resultado = -1;
}
}


class RemindTask extends TimerTask {
public void run() {
segundos++;
lblTime.setText(String.valueOf(segundos));
if(frozen){
System.out.println("Terminamos la ejecucion del timer");
timer.cancel();
}
}
}
public class AppContadorSwing implements ActionListener{
JFrame frame;
JPanel panel;
JButton btnIniciar,btnParar,btnReset;
JLabel lblTime;
Timer timer;
int segundos;//manejar el valor del contador
boolean frozen; //manejar el estado del contador
public AppContadorSwing() {
frame = new JFrame("Contador Swing");
panel = new JPanel(new GridLayout(1,3));
btnIniciar = new JButton("Iniciar");
btnIniciar.addActionListener(this);
btnParar = new JButton("Parar");
btnParar.addActionListener(this);
btnReset = new JButton("Reset");
btnReset.addActionListener(this);
lblTime = new JLabel("0",SwingConstants.CENTER);
panel.add(btnIniciar);
panel.add(btnParar);
panel.add(btnReset);
frame.getContentPane().add(lblTime, BorderLayout.NORTH);
frame.getContentPane().add(panel, BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
frozen = true; //iniciamos el estado en congelado
segundos = 0;
}
//clase interna que sobre-escribe el metodo run de TimerTask
class RemindTask extends TimerTask {
public void run() {
segundos++;
lblTime.setText(String.valueOf(segundos));
if(frozen){
System.out.println("Terminamos la ejecucion del timer");
timer.cancel(); //detenemos el timer
}
}
}
public void actionPerformed(ActionEvent a) {
System.out.println(a.getActionCommand());
if(a.getActionCommand().equals("Iniciar")){
frozen = false;
timer = new Timer();
//le asignamos una tarea al timer
timer.schedule(new RemindTask(),0, 1*100);
}
if(a.getActionCommand().equals("Parar")){
frozen = true;
}
if(a.getActionCommand().equals("Reset")){
frozen = true;
segundos = 0;
lblTime.setText(String.valueOf(segundos));
}
}
public static void main(String[] args){
JFrame.setDefaultLookAndFeelDecorated(true);
AppContadorSwing c = new AppContadorSwing();
}
}