Junto con saludarte, te dejo un pequeño ejemplo que he realizado, espero te sirva.
Acá te dejo 3 images que demuestran el resultado de este código:
http://imageshack.us/photo/my-images/10/capturadepantalla201304tq.png/
http://imageshack.us/photo/my-images/43/capturadepantalla201304p.png/
http://imageshack.us/photo/my-images/22/capturadepantalla201304fm.png/
Creacion Bdd:
Código:
create database ejemplo1;
use ejemplo1;
create table mesa(
idMesa int(10) primary key not null auto_increment,
numero int(250),
estado varchar(250));
Codigo Conexion a bdd:
Código:
package MysqlConec;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class conexión {
private String bdd="ejemplo1";
private String usuario="root";
private String clave="123456";
private Connection con;
private Statement stmt;
private ResultSet rs;
public conexión()
{
try{
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
con=DriverManager.getConnection("jdbc:mysql://localhost/"+bdd,usuario,clave);
}catch(Exception e)
{
e.printStackTrace();
}
}
public void setExecuteUpdate(String sql){
try{
stmt=con.createStatement();
stmt.executeUpdate(sql);
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public void setExecuteQuery(String sql){
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLException ex)
{
ex.printStackTrace();
}
}
public ResultSet getRs() throws SQLException
{
return rs;
}
}
Codigo Aplicacion:
Código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import MysqlConec.conexión;
import java.io.*;
public class Programa {
public static void main(String[] args){
Ventana v=new Ventana();
v.setVisible(true);
}
}
class Ventana extends JFrame{
public Ventana(){
this.setTitle("Ejemplo Mesas");
this.setSize(500,500);
MiPanel p=new MiPanel();
this.add(p);
}
}
class MiPanel extends JPanel{
private JButton[] mesa;
private JPanel pnNorte=new JPanel();
private JPanel pnCentro=new JPanel();
private JLabel lblMesa=new JLabel("Administrar");
private JComboBox comboMesa=new JComboBox();{
comboMesa.addItem("Abierta");
comboMesa.addItem("Cerrada");
}
private JButton btnMostrar=new JButton("Mostrar Mesas");
private conexión con=new conexión();
public MiPanel(){
pnNorte.setLayout(new GridLayout(1,3));
pnNorte.add(lblMesa);
pnNorte.add(comboMesa);
pnNorte.add(btnMostrar);
this.setLayout(new BorderLayout());
this.add(pnNorte,BorderLayout.NORTH);
this.add(pnCentro,BorderLayout.CENTER);
OyenteBuscar oBuscar=new OyenteBuscar();
btnMostrar.addActionListener(oBuscar);
}
public void crearMesas(int cantidad){
pnCentro.removeAll();
pnCentro.repaint();
pnCentro.setLayout(null);
mesa=new JButton[cantidad];
//JOptionPane.showMessageDialog(null,cantidad);
int x=0;
for(int i=0;i<cantidad;i++){
mesa[i] = new JButton("Mesa"+i);
if(i < 5){// 5 Mesas
mesa[i].setBounds(20+i*110, 20, 100, 100);
pnCentro.add(mesa[i]);
pnCentro.repaint();
}
else if(i>=5){//10 Mesas
mesa[i].setBounds(20+x*110, 130, 100, 100);
pnCentro.add(mesa[i]);
pnCentro.repaint();
x=x+1;
}
else if(i>=10){//15 Mesas
mesa[i].setBounds(20+x*110, 130, 100, 100);
pnCentro.add(mesa[i]);
x=x+1;
}
}
}
class OyenteBuscar implements ActionListener{
public void actionPerformed(ActionEvent e){
String estado=comboMesa.getSelectedItem().toString();
try{
con.setExecuteQuery("select count(idMesa) as total from mesa where estado='"+estado+"'");
while(con.getRs().next()){
int numer=con.getRs().getInt("total");
crearMesas(numer);
}
}catch(Exception ex)
{
}
}
}
}
Atento a tus comentarios.
Saluda Atte.