alli
alli

Reputation: 1

Use a Java Class to display data to jTable from a jFrame

I would like to know how can I reference a java class in my jFrame form to display data on the jTable. This is a code from my jFrame and I want to know how can I put it in a java class and just reference the class here in the JFrame so I could save space in this JFrame form

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here:
    String sql = "select * from description";
    if(jComboBox1.getSelectedIndex() == 0)
       
    
    try{
        PreparedStatement pstmt =conn.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
        jTable1.setModel(DbUtils.resultSetToTableModel(rs));
        jTable1.removeColumn(jTable1.getColumnModel().getColumn(2));
        model.setRowCount(0);
        while (rs.next()){
            
            model.addRow(new String[]{rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4)});
        }

    } catch(Exception e)
    {
        JOptionPane.showMessageDialog(null, e);
    } 

Upvotes: 0

Views: 91

Answers (1)

The Blind Hawk
The Blind Hawk

Reputation: 1656

Something like this?

public class CustomActionHandler {
  private JComboBox jComboBox1;
  // all the necessary stuff you need for the code to work
  CustomActionHandler(JComboBox jComboBox1, etc...) {
    this.jComboBox1 = jComboBox1;
    // finish passing all the data here
  }
  public static void JComboActionFollowup() {
    // TODO add your handling code here:
    String sql = "select * from description";
    if(jComboBox1.getSelectedIndex() == 0)
       
    
    try{
        PreparedStatement pstmt =conn.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
        jTable1.setModel(DbUtils.resultSetToTableModel(rs));
        jTable1.removeColumn(jTable1.getColumnModel().getColumn(2));
        model.setRowCount(0);
        while (rs.next()){
            
            model.addRow(new String[]{rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4)});
        }

    } catch(Exception e)
    {
        JOptionPane.showMessageDialog(null, e);
    } 
  }
}

and in your JFrame:

private CustomActionHandler actionhandler = new CustomActionHandler(jComboBox1, etc...)
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) { 
  actionhandler.JComboActionFollowup();
}

Upvotes: 1

Related Questions