Non riesco a trovare una soluzione, spero qualcuno possa aiutarmi.
Ho un MainFrame in cui utilizzo un CardLayout; per prima viene mostrata la HomeFrame in cui c'è una tabella che visualizza una lista di nomi presi dal database.
Quello che devo fare è questo: al click su una cella (contenete un determinato nome) si apre la seconda "card" (SchedaFrame) in cui dovrò mostrare una tabella contenente tutti i dati (presenti nel db) di quel determinato nome. Ho utilizzato un mouse listener che è questo:
codice:
class MousePressListener implements MouseListener
{
public void mouseClicked(MouseEvent e)
{
Point point = e.getPoint();
int row = names.rowAtPoint(point);
int col = names.columnAtPoint(point);
String selected = names.getValueAt(row, col).toString();
SchedaFrame c = new SchedaFrame(mainFrame);
c.showData(selected);
mainFrame.goSchedaFrame();
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
Nella SchedaFrame succede questo:
codice:
public class SchedaFrame extends JPanel
{
private JScrollPane scroll;
private JTable scheda;
private TableModelCard table;
ArrayList<TabellaDB> data = new ArrayList<TabellaDB>();
public SchedaFrame(MainFrame mainFrame) throws HeadlessException
{
table = new TableModelCard(data);
scheda = new JTable(table);
scroll = new JScrollPane(scheda);
add(scroll, BorderLayout.CENTER);
}
public void showData(String selected)
{
data = TabellaDBDAO.showAll(selected);
}
}
Quello che succede è che mostra solo il contenuto del costruttore, e del metodo "showData()" non se ne importa niente. So che è sbagliato quello che c'è in SchedaFrame, ma vorrei sapere se qualcuno può aiutarmi a capire come fare a passare il valore su cui clicco, per far comparire i suoi dati. E' una cosa che mi servirà in molte parti del programma, quindi ne devo venire a capo.
Ringrazio chi mi aiuterà.
Anche se devo cambiare molte cose, qualsiasi tipo di soluzione sarà ben accetta.