elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1]
1  Programación / Java / Es posible manipular un CardLayout desde otra clase? en: 29 Marzo 2018, 15:07 pm
Hola amigos, trabajando me e encontrado con un pequeño problema y es el siguiente. Tengo dos clases una contiene la parte visual y la otra se encarga del tratamiento de los datos, la cosa es, que cuando intento manipular desde la clase controladora las tarjetas del CardLayout explota el programa. Puedo hacerlo desde la misma clase, pero lo suyo seria hacerlo desde el controlador. Alguien como se manipulan los CardLayout desde otra clase?
Muchas gracias de antemano y saludos.
2  Programación / Java / JTable sobre JTable en: 14 Marzo 2018, 14:30 pm

Buenos días amigos, tengo un problema que me esta atormentando y al que no consigo darle una solución. Cuando le extraigo los datos una BBDD y se los agrego a la tabla todo va bien. Si presiono sobre otra pestaña se me carga la siguiente tabla sin problemas, pero si hago un clip sobre algún elemento de la segunda tabla cargada, se me visualiza la primero tabla que cargue y no logro eliminar esa tabla que permanece en segundo plano.

Este es mi código y muchas gracias de antemano.


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;

public class Principal {

   public static void main(String[] args) {
      
      MarcoProductos marco1=new MarcoProductos();
      marco1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      marco1.setVisible(true);

   }

}

class MarcoProductos extends JFrame{
   
   JPanel superior=new JPanel();
   private JComboBox nombreTablas=new JComboBox();
   private DatabaseMetaData datosBBDD;
   private ResultSet rs;
   private Connection con;
   private Statement st;
   private ResultSetModeloTabla modelo;
   //private DefaultTableModel modelo2;
   //private JButton reiniciar=new JButton("Reiniciar");
   
   
   
   public MarcoProductos() {
      setTitle("Productos");
      setBounds(400,300,800,400);
      
      try {
         con=DriverManager.getConnection("jdbc:mysql://localhost:8889/ping", "", "");         
         datosBBDD=con.getMetaData();
         rs=datosBBDD.getTables(null, null, null, null);
         
         while(rs.next()) {
            //Para conseguir los nombres de la tabla
            nombreTablas.addItem(rs.getString("TABLE_NAME"));
         }
         
         
      } catch (SQLException e) {
         
         e.printStackTrace();
      }
      //------------------------------------------------------------------------>>Action
      
      nombreTablas.addActionListener(new ActionListener() {

         
         public void actionPerformed(ActionEvent e) {
            
            String tablaSeleccionada=(String) nombreTablas.getSelectedItem();
            String consulta="SELECT * FROM "+tablaSeleccionada;
            
            try {
               st=miConexion.createStatement();
               rs=st.executeQuery(consulta);
               modelo=new ResultSetModeloTabla(rs);
               JTable tabla=new JTable();
               tabla.setModel(modelo);
               
               add(new JScrollPane(tabla),BorderLayout.CENTER);
               validate();
               
            } catch (SQLException e1) {
               
               e1.printStackTrace();
            }
            
         }
         
      });
            
      superior.add(nombreTablas);
      
      //add(reiniciar,BorderLayout.SOUTH);
      add(superior,BorderLayout.NORTH);
   }
   
   
}

class ResultSetModeloTabla extends AbstractTableModel{

   private ResultSet rsRegistro;
   private ResultSetMetaData resmd;
   
   
   public ResultSetModeloTabla(ResultSet unResultset) {
      
      rsRegistro=unResultset;
      try {
         resmd=rsRegistro.getMetaData();
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }   
   }
   
   @Override
   public int getRowCount() {
      
      try {
         rsRegistro.last();
         return rsRegistro.getRow();
      } catch (SQLException e) {
         
         e.printStackTrace();
         return 0;
      }
         
   }

   @Override
   public int getColumnCount() {
      
      try {
         return resmd.getColumnCount();
      } catch (SQLException e) {
         
         e.printStackTrace();
         return 0;
      }
   }

   @Override
   public Object getValueAt(int rowIndex, int columnIndex) {
      
      try {
         rsRegistro.absolute(rowIndex+1);
         return rsRegistro.getObject(columnIndex+1);
      } catch (SQLException e) {
         
         e.printStackTrace();
         return null;
      }
      
   }
   public String getColumnName(int c) {
      
      try {
         return resmd.getColumnName(c+1);
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
         return null;
      }
   
   }
      
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines