import java.awt.Component;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.text.NumberFormat;
import java.util.EventObject;
import javax.swing.AbstractCellEditor;
import javax.swing.JDialog;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
public class M extends javax.swing.JFrame {
DefaultTableModel model; Connection connect; Statement s; private ResultSet rst; int row; String expr; final String delete="Delete"; final TableRowSorter<DefaultTableModel> sorter; static TableColumnModel colModel; /** * Creates new form M */ public M() { initComponents(); model = (DefaultTableModel)jTable1.getModel(); sorter = new TableRowSorter<DefaultTableModel> (model); try { Class.forName("com.mysql.jdbc.Driver"); connect = DriverManager.getConnection("jdbc:mysql://localhost/SORTS","root",null); s = connect.createStatement(); String sql = "SELECT * FROM member"; ResultSet rec = s.executeQuery(sql); row = 0; while((rec!=null) && (rec.next())) { model.addRow(new Object[0]); model.setValueAt(rec.getString("memberShipNo"), row, 0); model.setValueAt(rec.getString("name"), row, 1); model.setValueAt(rec.getString("workingStation"), row, 2); model.setValueAt(rec.getString("address"), row, 3); model.setValueAt(rec.getString("teleNo"), row, 4); model.setValueAt(rec.getString("email"), row, 5); model.setValueAt(delete, row, 6); row++; } rec.close(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage()); e.printStackTrace(); } try { if(s != null) { s.close(); connect.close(); } } catch (SQLException e) { e.printStackTrace(); } jTable1.setRowSorter(sorter); colModel = jTable1.getColumnModel(); colModel.getColumn(6).setCellEditor(new ButtonEditor1(jTable1)); colModel.getColumn(6).setCellRenderer(new ButtonRenderer1()); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jTextField1 = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4", "5", "6", "7" } ) { Class[] types = new Class [] { java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } }); jScrollPane1.setViewportView(jTable1); jButton1.setText("jButton1"); jButton2.setText("View All"); jTextField1.setText(""); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 25, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton2) .addGap(18, 18, 18) .addComponent(jButton1) .addGap(38, 38, 38)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(75, 75, 75) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton2) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(0, 90, Short.MAX_VALUE)) ); pack(); }// </editor-fold> /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(M.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(M.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(M.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(M.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new M().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private javax.swing.JTextField jTextField1; // End of variables declaration
} ///////////////////////////////////////////////// class ButtonEditor1 extends AbstractCellEditor implements TableCellEditor, ActionListener {
javax.swing.JTable jTable1; JButton button = new JButton(); NumberFormat nf = NumberFormat.getCurrencyInstance(); int clickCountToStart = 1; public ButtonEditor1(javax.swing.JTable jTable1) { this.jTable1 = jTable1; button.setBackground(new java.awt.Color(255, 51, 102)); button.setFont(new java.awt.Font("Ravie", 1, 14)); button.addActionListener(this); } public void actionPerformed(ActionEvent e) { System.out.println("clicked"); } public Component getTableCellEditorComponent(javax.swing.JTable jTable1, Object value, boolean isSelected, int row, int column) { button.setText(value.toString()); return button; } public Object getCellEditorValue() { return button.getText(); } public boolean isCellEditable(EventObject anEvent) { if(anEvent instanceof MouseEvent) { return ((MouseEvent)anEvent).getClickCount() >= clickCountToStart; } return true; } public boolean shouldSelectCell(EventObject anEvent) { return true; } public boolean stopCellEditing() { return super.stopCellEditing(); } public void cancelCellEditing() { super.cancelCellEditing(); }
} ///////////////////////////////////////////////////////////////////
class ButtonRenderer1 implements TableCellRenderer { JButton button = new JButton();
public Component getTableCellRendererComponent(javax.swing.JTable jTable1, Object value, boolean isSelected, boolean hasFocus, int row, int column) { System.out.println(hasFocus); button.setBackground(new java.awt.Color(255, 51, 102)); button.setFont(new java.awt.Font("Ravie", 1, 14)); button.setText(value.toString()); return button; }
}
Ads