sliver80
29-03-2005, 21:52
salve, ho un problemino molto probabilmente stupido che saprei risolvere in maniera un pò zozza, pertanto mi rivolgo a voi in cerca di qualcosa di più sopraffino. :)
ho una jtable con all'interno dei dati provenienti da una lista a sua volta contenente gli elementi di una tabella di un database.
non tutti gli elementi degli oggetti della lista (e quindi della tabella del DB) vengono inseriti nella jtable (come ad esempio la chiave primaria che è un semplice "ID" e che non sarebbe d'interesse nella visualizzazione).
ho implementato l'ordinamento in tale table con la famosa classe TableSorter.
il tutto funziona alla grande, ma ho la necessità che quando viene selezionata una riga parta un'altra query al dbms utilizzando proprio l'ID che nella jtable non compare.
In particolare, essendo programmazione ad Agenti e non occupandomi io dell'agente che si interfaccia al dbms, devo passare necessariamente tutto l'oggetto della lista (dove vi è anche l'id che io avevo scartato nella visualizzazione), ma l'agente prenderà il campo ID dell'oggetto della lista che io passo.
so che può sembrare una cazzata, ma l'ontologia di questi agenti è questa e non posso farci nulla.
in particolare io faccio un getSelectedRow con cui ottengo l'indice i-esimo della jtable e prendo quindi l'i-esimo elemento della lista e lo passo all'altro agente.
giustamente avendo ordinato la jtable ma non lista i due indici non sono più coicidenti.
possibili soluzioni: ogni volta che ordino la jtable ordino pure la lista, oppure quando seleziono la riga vado a confrontare tutti gli elementi della riga con i campi dell'oggetto della lista ed una volta trovato la totale corrispondenza col compareTo, prendere tale oggetto e passarlo all'agente.
mi chiedevo se c'era qualche metodo per inserire fisicamente delle colonne nel tablemodel pur non visualizzandole o qualcosa di simile.
spero di aver saputo illustrare il problema (anche se non credo :oink: ) e resto in attesa di vostri consigli :)
thx
ho una jtable con all'interno dei dati provenienti da una lista a sua volta contenente gli elementi di una tabella di un database.
non tutti gli elementi degli oggetti della lista (e quindi della tabella del DB) vengono inseriti nella jtable (come ad esempio la chiave primaria che è un semplice "ID" e che non sarebbe d'interesse nella visualizzazione).
ho implementato l'ordinamento in tale table con la famosa classe TableSorter.
il tutto funziona alla grande, ma ho la necessità che quando viene selezionata una riga parta un'altra query al dbms utilizzando proprio l'ID che nella jtable non compare.
In particolare, essendo programmazione ad Agenti e non occupandomi io dell'agente che si interfaccia al dbms, devo passare necessariamente tutto l'oggetto della lista (dove vi è anche l'id che io avevo scartato nella visualizzazione), ma l'agente prenderà il campo ID dell'oggetto della lista che io passo.
so che può sembrare una cazzata, ma l'ontologia di questi agenti è questa e non posso farci nulla.
in particolare io faccio un getSelectedRow con cui ottengo l'indice i-esimo della jtable e prendo quindi l'i-esimo elemento della lista e lo passo all'altro agente.
giustamente avendo ordinato la jtable ma non lista i due indici non sono più coicidenti.
possibili soluzioni: ogni volta che ordino la jtable ordino pure la lista, oppure quando seleziono la riga vado a confrontare tutti gli elementi della riga con i campi dell'oggetto della lista ed una volta trovato la totale corrispondenza col compareTo, prendere tale oggetto e passarlo all'agente.
mi chiedevo se c'era qualche metodo per inserire fisicamente delle colonne nel tablemodel pur non visualizzandole o qualcosa di simile.
spero di aver saputo illustrare il problema (anche se non credo :oink: ) e resto in attesa di vostri consigli :)
thx