I have created Swing GUI in Eclipse, where i have two JTables and method tableChanged. In this method i need read data from table, when i edit some cell in table and send it to logical layer of my project. Problem is how to identify table ,which calls this method and then use right JSON structure for row of edited table and send it.
JTable1:
Object[] columns = {"ID","Jmeno","Prijmeni","Narozeni","Pozice"};
JTable userTable = new JTable(new DefaultTableModel(columns, 0));
scrollPane.setViewportView(userTable);
userTable.setCellSelectionEnabled(true);
userTable.setColumnSelectionAllowed(true);
updateUser();
userTable.getModel().addTableModelListener((TableModelListener) this);
JTable2:
Object[] columns = {"EAN","Cena","Nazev","Oddeleni","Sk.Podminky","VytvorenoUzivatelem"};
JTable zboziTable = new JTable(new DefaultTableModel(columns, 0));
scrollPane.setViewportView(zboziTable);
userTable.setCellSelectionEnabled(true);
userTable.setColumnSelectionAllowed(true);
updateZbozi();
zboziTable.getModel().addTableModelListener((TableModelListener) this);
tableChanged mehod:
@Override
public void tableChanged(TableModelEvent e)
{
int row = e.getFirstRow();
int column = e.getColumn();
TableModel model = (TableModel)e.getSource();
String[] data = new String[model.getColumnCount()];
if(column >= 0)
{
if(!model.getValueAt(row, column).toString().equals(""))
{
for (int i = 0; i < data.length; i++)
{
data[i] = model.getValueAt(row, i).toString();
}
//here is JSON structure for userTable
String jsonData = "{\"ID\": \"" + data[0] + "\", \"Jmeno\": \"" + data[1] + "\", \"Prijmeni\": \"" + data[2] + "\", \"Datum_Narozeni\": \"" + data[3] + "\", \"Pozice\": \"" + data[4] + "\"}";
WebTarget target = client.target("http://localhost:8080/WSdemo/obchod/editUser");
target.request().post(Entity.entity(jsonData, MediaType.APPLICATION_JSON),String.class);
}
else
System.out.print("Enter valid text!");
}
}