I am using Eclipse & Swing to create this project. I am trying to populate a JTable. I've fetched the values from database in the method Display_UserInfo_in_JTable()
.
But I do not know how to use this method to populate my JTable. I think the method should have a return type for this, but I do not know how can I do it?
package view;
import controller.*;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class TableView {
private JFrame frame;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TableView window = new TableView();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private ArrayList<UserInfo> UserInfoList()
{
try
{
UserInfo userinfo;
ArrayList<UserInfo> UserInfoList = new ArrayList<UserInfo>();
Connection sqlCon = DB_con.getSQLConnection();
PreparedStatement ps = sqlCon.prepareStatement("select id,name,username,contact,gender from temp");
ResultSet rs = ps.executeQuery();
while(rs.next())
{
userinfo = new UserInfo(
rs.getInt("id"),
rs.getString("name"),
rs.getString("username"),
rs.getString("contact"),
rs.getString("gender")
);
UserInfoList.add(userinfo);
}
return UserInfoList;
}
catch(Exception ex)
{
System.out.println(ex.toString());
return null;
}
}
public void Display_UserInfo_in_JTable()
{
try
{
ArrayList<UserInfo> list = UserInfoList();
DefaultTableModel dtm = new DefaultTableModel();
Object row[] = new Object[5];
for(int i = 0 ; i < list.size(); i++)
{
row[0] = list.get(i).getId();
row[1] = list.get(i).getName();
row[2] = list.get(i).getUsername();
row[3] = list.get(i).getContact();
row[4] = list.get(i).getGender();
dtm.addRow(row);
}
table.setModel(dtm);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
/**
* Create the application.
*/
public TableView() {
initialize();
Display_UserInfo_in_JTable();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 598, 402);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(10, 11, 562, 341);
frame.getContentPane().add(panel);
panel.setLayout(null);
table = new JTable();
//table.setBounds(49, 163, 92, -97);
JScrollPane jsp = new JScrollPane(table);
panel.add(table);
}
}
I've added table.setModel(dtm);
in the method Display_UserInfo_in_JTable()
, still can not get the result.