Java - Como llamar una clase en la función de un botón.

   
Vista:

Como llamar una clase en la función de un botón.

Publicado por Alejandro (2 intervenciones) el 06/06/2011 01:33:25
Hola a todos tengo una clase que es un formulario de inserción de datos, la idea es que este formulario por medio de un botón me envié los datos y me los inserte en una base de datos. Por ende tengo la clase de inserción en la base de datos MySQL. esta clase si la ejecuto me inserta perfectamente pero ahora deseo llamarla en el formulario para que por medio del boton me inserte tambien.
Dejo los codigos de las dos clases para tener una mejor ayuda


import java.awt.Color;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.sql.*;
import java.util.Hashtable;

public class formulario{

private double nota;
private int in=0;
private int cll=0;
private int clw=0;
private String imprimir="";
private Statement stm;

public formulario(){
JFrame frame= new JFrame("Estadisticas Saber Pro");

Panel panel=new Panel();
panel.setLayout(null);
panel.setBounds(0,0,450,750);
panel.setBackground(Color.GRAY);

frame.setSize(450, 750);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

Label txidalum=new Label("ID Alumno");
txidalum.setBounds(50, 60, 100, 20);

final TextField idalum=new TextField("");
idalum.setBounds(250, 60, 100, 20);

Label txcarrera=new Label("Carrera");
txcarrera.setBounds(50, 120, 100, 20);

final Choice carrera=new Choice();
carrera.add("");
carrera.add("Tecnica");
carrera.add("Tecnologica");
carrera.setBounds(250,120, 100,20);

Label txfacultad=new Label("Facultad");
txfacultad.setBounds(50, 180, 100, 20);

final Choice facultad=new Choice();
facultad.add("");
facultad.add("Ingenierias");
facultad.add("NTIC");
facultad.setBounds(250,180, 100,20);

Label txcompon=new Label("Componentes");
txcompon.setBounds(50, 240, 100, 20);

final Choice compon=new Choice();
compon.add("");
compon.add("Basicos");
compon.add("Social");
compon.add("Programacion");
compon.add("Matematicas");
compon.setBounds(250,240, 100,20);

Label txpunta=new Label("Puntaje");
txpunta.setBounds(50, 300, 100, 20);

final TextField punta=new TextField("");
punta.setBounds(250, 300, 100, 20);

JButton enviar=new JButton("Calcular");
enviar.setBounds(50, 340, 100, 50);

JButton borrar=new JButton("Cancelar");
borrar.setActionCommand("salir");
borrar.setBounds(250, 340, 100, 50);

JButton ins=new JButton("Insertar");
ins.setBounds(50, 520, 100, 50);

Label txlost=new Label("Debilidad");
txlost.setBounds(50, 420, 100, 20);

final TextField lost=new TextField("0");
lost.setBounds(250, 420, 100, 20);

Label txwin=new Label("Fortaleza");
txwin.setBounds(50, 480, 100, 20);

final TextField win=new TextField("0");
win.setBounds(250, 480, 100, 20);

panel.add(txidalum);
panel.add(idalum);
panel.add(txcarrera);
panel.add(carrera);
panel.add(txfacultad);
panel.add(facultad);
panel.add(txcompon);
panel.add(compon);
panel.add(txpunta);
panel.add(punta);
panel.add(txlost);
panel.add(lost);
panel.add(txwin);
panel.add(win);
panel.add(enviar);
panel.add(borrar);
panel.add(ins);
frame.add(panel);

frame.setVisible(true);

frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
);

enviar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
in=in+1;

//nota= Integer.parseInt(cali.getText());
nota=Double.parseDouble(punta.getText());
JOptionPane.showMessageDialog(null,"ID Alumno "+idalum.getText() +"\n\n"+"Carrera "+carrera.getSelectedItem()+"\n\n"+"Facultad "+facultad.getSelectedItem()+"\n\n"+"Componentes "+compon.getSelectedItem());

if(0.9<nota && nota<2.8){
cll=cll+1;
JOptionPane.showMessageDialog(null,"Tiene Debilidad");
imprimir =""+ cll;
lost.setText(imprimir);
}


if(2.9<nota && nota<5.1){
clw=clw+1;
JOptionPane.showMessageDialog(null,"Tiene Fortaleza");
imprimir =""+ clw;
win.setText(imprimir);
}

if (nota>5.1){

JOptionPane.showMessageDialog(null,"Nota incorrecta");
}
}
}
);

borrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("salir")){
System.exit(0);
}
}
}
);
// este botón es el que me debería hacer la inserción.
ins.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"intentando registrar");
DBInsertar objeto = new DBInsertar();
JOptionPane.showMessageDialog(null,"Registro Insertado");
}
}
);
}

}

y la clase de inserción es esta.

import java.sql.*;

public class DBInsertar
{
static String bd = "xxxxx";
static String login = "xxxxx";
static String password = "xxxxx";
static String url = "jdbc:mysql://localhost/"+bd;

//DBInsertar()
public static void main(String[] args) throws Exception
{
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,login,password);
if (conn != null)
{
int rows_updated = 0;
PreparedStatement stmt1 = conn.prepareStatement("INSERT INTO saberf (idalum, carrera, facultad, compon, punta) "
+ "VALUES (?,?,?,?,?)");

stmt1.setInt(1,3);
stmt1.setString(2,"Ing Sistemas");
stmt1.setString(3,"Nuevas tecnologias");
stmt1.setString(4,"Basico");
stmt1.setInt(5,4);

rows_updated = stmt1.executeUpdate();

}
}
catch(SQLException ex) {
System.out.println(ex);
}
catch(ClassNotFoundException ex) {
System.out.println(ex); }
}
}

Por favor espero sus apuntes gracias!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como llamar una clase en la función de un botón.

Publicado por Javier M (94 intervenciones) el 06/06/2011 08:26:14
Hola, bueno lo que tienes que hacer ahi es desde la clase fomulario instanciar la clase DBIntertar.

Buena suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como llamar una clase en la función de un botón.

Publicado por Alejandro (2 intervenciones) el 06/06/2011 09:32:59
Hola, Javier M muchas gracias por la respuesta, esto me funciono..... ahora una ultima duda, como hago en esta parte para que me agarre los datos de los campos del formulario.
int rows_updated = 0;
PreparedStatement stmt1 = conn.prepareStatement("INSERT INTO saberf (idalum, carrera, facultad, compon, punta) "
+ "VALUES (?,?,?,?,?)");

stmt1.setInt(1,3);
stmt1.setString(2,"Ing Sistemas");
stmt1.setString(3,"Nuevas tecnologias");
stmt1.setString(4,"Basico");
stmt1.setInt(5,4);

rows_updated = stmt1.executeUpdate();

si en el values pongo lo siguiente no me inserta nada,
"VALUES (idalumgetText())";
y en el stmt1 tampoco me inserta nada,
stmt1.setInt(1, idalumgetText());

entonces no se la forma correcta de poner esto para que me haga la inserción a la BD
agradezco la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar