Hello, I'm developing a GUI application as part of an assignment but stuck on how my program stores and reads the data the user entered into the GUI table I created. I also wanted to apply a java code that limits the data type and the character size that can be entered into the table fields. I got as far as creating the table and the column fields. Can you please guide me. Thanks in advance.
import java.io.*; import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel;
public class Contacts {
public static void main (String[] args) { //declare members JFrame frame = new JFrame ("Contacts"); String [] colNames = {"First Name", "MI", "Last Name", "Age", "E-Mail Address", "Cellphone"}; Object [][] data = new Object[30][30]; DefaultTableModel model = new DefaultTableModel(data, colNames); JTable contactsTable = new JTable(model); JScrollPane s = new JScrollPane(contactsTable); frame.setVisible(true); frame.setSize(600, 300); frame.setLocationRelativeTo(null); frame.add(contactsTable);
} }
Here is an example that reads data from jtable and display on the console.
import javax.swing.*; import javax.swing.table.*; import java.awt.*; import java.awt.event.*; public class GetDataFromDatabase{ JTable table; JButton button; public static void main(String[] args) { new GetDataFromDatabase(); } public GetDataFromDatabase(){ JFrame frame = new JFrame("Getting Cell Values in JTable"); JPanel panel = new JPanel(); String data[][] = {{"Angelina","Mumbai"},{"Martina","Delhi"}}; String col[] = {"Name","Address"}; DefaultTableModel model = new DefaultTableModel(data, col); table = new JTable(model); JScrollPane pane = new JScrollPane(table); button=new JButton("Submit"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae){ int index=1; int count=table.getRowCount(); for(int i=0;i<count;i++){ Object obj1 = GetData(table, i, 0); Object obj2 = GetData(table, i, 1); String value1=obj1.toString(); String value2=obj2.toString(); System.out.println(value1+"\t"+value2); index++; } } }); panel.add(pane); panel.add(button); frame.add(panel); frame.setSize(500,250); frame.setUndecorated(true); frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public Object GetData(JTable table, int row_index, int col_index){ return table.getModel().getValueAt(row_index, col_index); } }
Here is an example that inserts jtable data to database.
import javax.swing.*; import javax.swing.table.*; import java.sql.*; import java.awt.*; import java.awt.event.*; public class InsertJTableDatabase{ JTable table; JButton button; public static void main(String[] args) { new InsertJTableDatabase(); } public InsertJTableDatabase(){ JFrame frame = new JFrame("Getting Cell Values in JTable"); JPanel panel = new JPanel(); String data[][] = {{"Angelina","Mumbai"},{"Martina","Delhi"}}; String col[] = {"Name","Address"}; DefaultTableModel model = new DefaultTableModel(data, col); table = new JTable(model); JScrollPane pane = new JScrollPane(table); button=new JButton("Submit"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae){ PreparedStatement pstm; ResultSet rs; int index=1; int count=table.getRowCount(); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection connect =DriverManager.getConnection("jdbc:odbc:access"); for(int i=0;i<count;i++){ Object obj1 = GetData(table, i, 0); Object obj2 = GetData(table, i, 1); String value1=obj1.toString(); String value2=obj2.toString(); System.out.println(value1); System.out.println(value2); pstm=connect.prepareStatement("insert into data values(?,?)"); pstm.setString(1,value1); pstm.setString(2,value2); index++; } pstm.executeUpdate(); } catch(Exception e){} } }); panel.add(pane); panel.add(button); frame.add(panel); frame.setSize(500,250); frame.setUndecorated(true); frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public Object GetData(JTable table, int row_index, int col_index){ return table.getModel().getValueAt(row_index, col_index); } }
Here is an example that retrieves data from database and stored into jtable.
import java.awt.*; import java.sql.*; import java.util.*; import javax.swing.*; import java.awt.event.*; import javax.swing.table.*; public class JTableDatabase { public static void main(String[] args) { Vector columnNames = new Vector(); Vector data = new Vector(); JPanel p=new JPanel(); try { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root" ); String sql = "Select name,address from data"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery( sql ); ResultSetMetaData md = rs.getMetaData(); int columns = md.getColumnCount(); for (int i = 1; i <= columns; i++) { columnNames.addElement( md.getColumnName(i) ); } while (rs.next()) { Vector row = new Vector(columns); for (int i = 1; i <= columns; i++){ row.addElement( rs.getObject(i) ); } data.addElement( row ); } rs.close(); stmt.close(); } catch(Exception e){ System.out.println(e); } JTable table = new JTable(data, columnNames); TableColumn col; for (int i = 0; i < table.getColumnCount(); i++) { col = table.getColumnModel().getColumn(i); col.setMaxWidth(250); } JScrollPane scrollPane = new JScrollPane( table ); p.add( scrollPane ); JFrame f=new JFrame(); f.add(p); f.setSize(600,400); f.setVisible(true); } }