Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Click su cella JTable apre un frame passando un parametro per una query

  1. #1

    Click su cella JTable apre un frame passando un parametro per una query

    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:
    
    
    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:
    
    
    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.

  2. #2

    Modifica

    Prova a creare un bottone che ha un actionlistener che ti manda sull'altra finestra dopo aver selezionato il valore che ti interessa

    Ad esempio:

    JButton btnNewButton = new JButton("Dettagli);

    btnNewButton.setMnemonic('d');



    btnNewButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {


    if (table.getSelectedRow() != -1) {
    new Frame2((String) SchedaFrame.table.getValueAt(SchedaFrame.table.get SelectedRow(), 0);*
    SchedaFrame.frame.setVisible(false);
    } else
    JOptionPane.showMessageDialog(null, "Seleziona una disciplina dall'elenco", "Errore disciplina",
    JOptionPane.WARNING_MESSAGE);
    }
    });

    SchedaFrame.add(btnNewButton, BorderLayout.SOUTH);


    *ipotizzando che l'info che ti serva sia sulla prima colonna,ciò vale anche per la seconda,terza etcetc

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2017 vBulletin Solutions, Inc. All rights reserved.