// Create Class User
package JAVA_VIDEOS_TUTORIALS;
public class User {
private int id;
private String fname;
private String lname;
private int age;
public User(int Id,String Fname,String Lname,int Age)
{
this.id = Id;
this.fname = Fname;
this.lname = Lname;
this.age = Age;
}
public int getId()
{
return id;
}
public String getFname()
{
return fname;
}
public String getLname()
{
return lname;
}
public int getAge()
{
return age;
}
}
// Creates new form Java_JTable_Order
package JAVA_VIDEOS_TUTORIALS;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
public class Java_JTable_Order extends javax.swing.JFrame {
/**
* Creates new form Java_JTable_Order
*/
public Java_JTable_Order() {
initComponents();
showUsersInJTable(query); }
String query = "SELECT * FROM users";
// function to get the connection
public Connection getConnection()
{
Connection con = null;
try
{
con = DriverManager.getConnection("jdbc:mysql://localhost/test_db","root","");
}catch(Exception ex)
{
System.out.println(ex.getMessage());
}
return con;
}
// function return an arraylist of users
public ArrayList<User> ListUsers(String query)
{
ArrayList<User> usersList = new ArrayList<User>();
Connection con = getConnection();
Statement st;
ResultSet rs;
try{
st = con.createStatement();
rs = st.executeQuery(query);
User user;
while(rs.next())
{
user = new User(
rs.getInt("id"),
rs.getString("fname"),
rs.getString("lname"),
rs.getInt("age")
);
usersList.add(user);
}
}catch(Exception ex)
{
System.out.println(ex.getMessage());
}
return usersList;
}
// function to display the result in jtable
public void showUsersInJTable(String OrderQuery)
{
ArrayList<User> users = ListUsers(OrderQuery);
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(new Object[]{"ID","First Name","Last Name","Age"});
Object[] row = new Object[4];
for(int i = 0; i < users.size(); i++)
{
row[0] = users.get(i).getId();
row[1] = users.get(i).getFname();
row[2] = users.get(i).getLname();
row[3] = users.get(i).getAge();
model.addRow(row);
}
jTable_Order.setModel(model);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton_ASC = new javax.swing.JButton();
jButton_DESC = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable_Order = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton_ASC.setText("ASCENDING");
jButton_ASC.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton_ASCActionPerformed(evt);
}
});
jButton_DESC.setText("DESCENDING");
jButton_DESC.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton_DESCActionPerformed(evt);
}
});
jTable_Order.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable_Order);
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(jButton_ASC)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton_DESC))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton_ASC)
.addComponent(jButton_DESC))
.addGap(27, 27, 27)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 459, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 17, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
// button ascending
private void jButton_ASCActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
query = "SELECT * FROM users ORDER BY age ASC";
showUsersInJTable(query);
}
// button descending
private void jButton_DESCActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
query = "SELECT * FROM users ORDER BY age DESC";
showUsersInJTable(query);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
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(Java_JTable_Order.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Java_JTable_Order.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Java_JTable_Order.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Java_JTable_Order.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 Java_JTable_Order().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton_ASC;
private javax.swing.JButton jButton_DESC;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable_Order;
// End of variables declaration
}
// OUTPUT: