Existe una librería en Python llamada PyGame. Es relativamente sencilla de utilizar y puedes hacer pequeños juegos con ésta librería. Salu2.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
public abstract class Animal {
// a diferencia de las interfaces una clase abstracta puede
// contener variables de instancia y metodos no abstractos
String nombre;
// las subclases deben implementar este metodo (especializacion)
public abstract void accion();
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() { return nombre; }
}
public class Perro extends Animal {
// hereda String nombre
@Override
public void accion() {
System.out.println("Guarf, Guarf! Grrrrr");
}
// hereda los setters y getters
}
public class Gato extends Animal {
// hereda String nombre
@Override
public void accion() {
System.out.println("Miau, miau...");
}
// hereda setters y getters
}
Animal animal = new Animal(); // ERROR. No se puede instanciar una clase abstracta
Animal animal = new Perro(); // OK. Un Perro es un animal, y Perro no es abstracto por lo esto es valido
public void actuar(Animal animal) { // si Animal fuera una interface tambien funcionaria esto
// sea perro o gato, esto se determina en tiempo de ejecucion y llama al metodo accion() correspondiente
animal.accion();
}
while(rs.next()) {
for(byte i=0; i<columnas; i++) {
data[i] = resultmeta.getObject(i+1);
}
}
while(rs.next()) {
data[0] = (String) resultmeta.getString("nombreColumna");
// asi con las demas propiedades. El casting de acuerdo al tipo de dato
if(rs.next() == null) { modelo.addRow(data); } // si ya no hay filas en la tabla se inserta la fila en la JTable
}
for(Object e : data) {
System.out.println("Valor:"+e+"\tTipo de dato: "+e.getClass().getName());
}
Cita de: dato000 en 19 Marzo 2014, 22:54 PM
Quien diga eso lo parto en dos!!!!!!!!!!!! se que lo dices por poner un ejemplo, pero el que diga eso realmente es un beato!!!!
public class GUI extends JFrame implements ActionListener {
public GUI() {
// tus controles
JButton btnAceptar = new JButton("Aceptar");
btnAceptar.addActionListener(this);
this.add(btnAceptar);
// configuracion del jframe, tamanio, setDefaultCloseOperation(int tipo),y setVisible(true) etc
}
@Override
public void actionPerformed(ActionEvent evt) {
new Dialogo(this,true); // creamos el JDialog e indicamos que este JFrame sera su padre
}
}
public class Dialogo extends JDialog {
public Dialogo(JFrame padre, boolean modal) {
// JDialog necesita un padre, es decir siempre dependera de un JFrame o Frame (AWT)
// aqui puedes usar 'padre' para obtener los valores que se han elegido en el
// formulario (padre) para crer dinamicamente tu JDialog asi como tu quieres
// creamos la tabla, le asignamos un modelo y le agregamos una fila
JButton btnAceptar = new JButton("Insertar");
JTable tblDatos = new JTable();
DefaultTableModel modelo = new DefaultTableModel();
tblDatos.setModel(modelo);
btnAceptar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
try {
agregarFila(modelo);
} catch(SQLException ex) { System.err.println(ex.getMessage()); }
}
});
this.add(btnAceptar);
this.add(tblDatos);
}
public void agregarFila(DefaultTableModel modelo) throws SQLException {
Object[] data = null;
Connection conexion = null;
PreparedStatement estatuto = null;
ResultSetMetadata resultmeta = null;
String sql = "select * from TUTABLA;";
try {
// recuperamos lo que hay en la base de datos
conexion = Conexion.getConnection(); // Conexion es una clase que devuelve una conexion a la DB
estatuto = conexion.preparedStatement();
ResultSet rs = estatuto.executeQuery();
resultmeta = rs.getMetadaData();
int columnas = resultset.getColumnCount();
data = new Object[columnas];
while(rs.next()) {
for(byte i=0; i<columnas; i++) {
data[i] = resultmeta.getObject(i+1);
}
}
modelo.addRow(data);
} catch(SQLException ex) { throw ex; }
finally { if(conexion != null) conexion.close();
}
}
}