Torna indietro   Hardware Upgrade Forum > Software > Programmazione

TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air combina diverse carte molto interessanti: un OLED PaperMatte da 12 pollici, un corpo sottile e una tastiera molto comoda. Durante la prova abbiamo apprezzato fluidità, audio e comfort visivo, mentre i test hanno chiarito pregi e qualche limite nelle prestazioni. L'autonomia ha convinto anche nell'uso intermittente; la scelta passa dalla compatibilità delle proprie app e dal valore del pacchetto con accessori, proposto a 749 euro
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
Debuttano ufficialmente i primi sistemi notebook basati su piattaforma NVIDIA RTX Spark, abbinati a Windows on ARM e pensati per l'intelligenza artificiale agentica. Architettura integrata tra CPU e GPU che condividono la memoria di sistema, capace di gestire in locale modelli molto grandi ma al contempo anche di spiccare con la grafica e l'elaborazione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-03-2009, 21:28   #1
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
[JAVA] risultati query in una combobox e jtextfield

espongo i due problemi sperando in una vostra risposta:
1) voglio elencare in OGNI RIGA di una combobox cognomi e nomi relativi a dei medici. Sono riuscito a farlo per i cognomi soltanto (o nomi soltanto) ma non entrambi. Questo è quello che dovrei modificare:

//dal form dove ho la combobox faccio la chiamata alla classe Database che contiene le funzioni (penso che vada bene)

Database db = new Database();
Public Vector medico;
.....
medico= db.elenco_medici();
for (int i=0; i<medico.size();i++){
Combo_dottori.addItem(medico.get(i));}

//questa è la funzione nella classe Database

Vector elenco_medici (){
Vector ris = new Vector();
ris.add("vuoto");
String q = null;
String errore = avvia();
q = "SELECT `cognome_medico` FROM `medico`";
try {
Statement st = connessione.createStatement();
ResultSet rs = st.executeQuery(q);
if (rs.isBeforeFirst()) {
ris.removeAllElements();
ris.add("Tutti i medici");}
else {
ris.removeAllElements();
ris.add(errore);
}
while (rs.next()) {
ris.add(rs.getString("cognome_medico"));
} }catch (Exception e) {
//SE VIENE GENERATA UN SQLException LA RESTITUISCO AL CLIENT PER INFORMARLO
ris.removeAllElements();
ris.add(e.toString());
}
return ris;
}

La query per restituire anche i nomi dei medici è semplice (basta aggiungere `nome_medico` dopo il SELECT) ma come modifico la funzione per mettere nome e cognome nella stessa riga???

2)Devo settare come testo di alcune jTextField i risultati di una query...in pratica mi serve il corrispettivo per le query di quello ke faccio nella combobox cosi:

for (int i=0; i<medico.size();i++){
Combo_dottori.addItem(medico.get(i));}

spero di essere stato chiaro.....altrimenti chiedete pure...
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 09:07   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Una volta recuperato da database il resultset con i nomi e cognomi dei dottori, nella combobox non dovrai fare altro che inserire la stringa corrispondente a nome + cognome.

Non ho capito bene dove hai difficoltà, nel codice.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 17:11   #3
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
io ho provato cosi:

Vector elenco_medici (){
Vector ris = new Vector();
ris.add("vuoto");
String q = null;
String errore = avvia();
q = "SELECT `cognome_medico` `nome_medico` FROM `medico`";//NUOVA QUERY
try {
Statement st = connessione.createStatement();
ResultSet rs = st.executeQuery(q);
if (rs.isBeforeFirst()) {
ris.removeAllElements();
ris.add("Tutti i medici");}
else {
ris.removeAllElements();
ris.add(errore);
}
while (rs.next()) {
ris.add(rs.getString("cognome_medico"));
ris.add(rs.getString("nome_medico"));//AGGIUNTA
} }catch (Exception e) {
//SE VIENE GENERATA UN SQLException LA RESTITUISCO AL CLIENT PER INFORMARLO
ris.removeAllElements();
ris.add(e.toString());
}
return ris;
}

ma non va
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 17:23   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
"Non va" non è molto specifico...
Cos'è che non va?

Posta almeno gli errori che ti sputa in output e proviamo a capire cosa c'è che "non va"
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 20:11   #5
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
scusa non avevo il programma sotto....mi da errore javaSQLException...non trova la colonna `cognome_medico`, eppure con la funzione scritta nel primo post la trova, con solo cognome_medico nella query.

edit:spostando il nome prima del cognome nella query e in ris.add non trova la colonna `nome_medico`

Ultima modifica di serpico84 : 30-03-2009 alle 20:23.
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 08:16   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
...mi da errore javaSQLException...non trova la colonna `cognome_medico`, eppure con la funzione scritta nel primo post la trova, con solo cognome_medico nella query
Perfetto, se hai capito che ti solleva quell'eccezione perchè c'è un errore dovuto a un'errata sintassi della query quando la trasformi per recuperare i valori di due campi invece che di uno solo praticamente hai quasi risolto il problema.

Il passo che ti manca sarebbe, documentazione alla mano (o a video ), quello di verificare la sintassi SQL corretta per una SELECT.

Codice:
q = "SELECT `cognome_medico`, `nome_medico` FROM `medico`";//NUOVA QUERY
Manca la virgola?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:33   #7
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
si!! grazie mille come al solito errori banali....x quanto riguarda il punto 2)??
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 12:07   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da serpico84 Guarda i messaggi
si!! grazie mille come al solito errori banali....x quanto riguarda il punto 2)??
Potresti spiegare meglio quel punto?
Con calma e in modo chiaro, postando anche del codice se lo ritieni opportuno (nel qual caso ti invito ad usare gli appositi tag CODE, per non perdere l'identazione).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 19:22   #9
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
non ho ancora fatto codice perchè non so come fare. Quello che devo fare è ricevere in varie jtextfield il risultato di una query (salvata sempre su vettore, tramite relativa funzione), un po come ho fatto con la combo medico
Codice:
for (int i=1; i<medico.size();i=i+2){
                Lista_dottori.addItem((String)medico.get(i-1)+" "+medico.get(i));}
potrebbe essere banale ma molte cose di java ahimè l'ho dimenticate!
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 08:43   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quindi hai già:
il vettore di oggetti (String?) generato a partire dal result set della query.

Vuoi fare questo:
tramite diversi JTextField visualizzare tutti gli oggetti (String?) presenti nel vettore.

Domanda:
Se devi utilizzare un JTextField per ogni oggetto nel vettore dei risultati della query, significa che devi istanziarne dinamicamente il numero? (nel senso che a priori non sai quanti oggetti hai nel vettore risultato, e in base a quel numero devi creare il corrispettivo numero di JTextField)?

Ho capito bene?



Nel caso la risposta fosse affermativa, ti chiedo ma ha senso usare proprio dei JTextField?

1) Se devo solo visualizzare i risultati (String) di una query e non devo permettere all'utente di editare i risultati mostrati JTextField non è neccessario; si potrebbe usare invece JLabel.

2) se devo visualizzare una lista di risultati di una query forse è meglio usare un componente che prenda in input il contenuto di tutto il vettore di risultati e li mostri tutti, invece che instanziare un componente per ogni risultato.
Anche perchè facciamo questa considerazione: se la query genera 350 String come risultato, cosa facciamo? Istanziamo dinamicamente nella finestra 350 JTextField per mostrarle all'utente? E se le String fossero 1000?

Detto questo, potresti invece anche avere buone ragioni che ti hanno spinto a fare questa scelta, nel qual caso ignora completamente le osservazioni che ho postato.

Ciao
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 10:45   #11
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
ti rispondo in modo breve poichè ho poco tempo ora....inserisco il codice fiscale su una text field, tramite un bottone faccio partire la query che controlla se quel codice fiscale è già presente nel DB, se si riempe i campi textfield dei dati del paziente (rimangono però oscurati cioè non editabili), se no i campi si attivano e quindi posso inserire i dati del paziente (che è un paziente nuovo). Per le altre cose ti rispondo stasera. Grazie per il supporto!!
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 11:46   #12
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da serpico84 Guarda i messaggi
ti rispondo in modo breve poichè ho poco tempo ora....inserisco il codice fiscale su una text field, tramite un bottone faccio partire la query che controlla se quel codice fiscale è già presente nel DB, se si riempe i campi textfield dei dati del paziente (rimangono però oscurati cioè non editabili), se no i campi si attivano e quindi posso inserire i dati del paziente (che è un paziente nuovo). Per le altre cose ti rispondo stasera. Grazie per il supporto!!
Ok adesso la sistuazione è chiara.

Allora la cosa è semplice:
- numero di JTextField fisso, uno per ogni campo di un record/result della query.

La query torna un result set;
Il result set o contiene 1 record/result, oppure ne contiene zero;

Siccome dobbiamo popolare il testo di JTextField a noi interessano oggetti String quindi quando leggi ogni campo del result set trasformi il valore letto in String che piazzi in un vettore [metodo più banale: String s = "" + valoreResultSet.getQualcosa()].

Finito di leggere il result set hai un vettore di string che contiene:
- zero elementi se la query non ha trovato nessun risultato con quel codice fiscale.
- un numero di elementi pari al numero di campi del result set letto se la query ha trovato l'unico result possibile per quel codice fiscale.

Nel primo caso (vettore di string di lunghezza zero) abiliti tutti i JTextField [metodo .setEnable(true)]; nel secondo caso (vettore di string di lunghezza maggiore di zero : [vector.size() > 0]) disabiliti tutti i JTextField [metodo .setEnable(false)] e li popoli con i valori del vettore [metodo .setText(String) da chiamare sul JTextField desiderato passandogli la String appropriata]

Ciao
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Il satellite spia russo Kosmos 2612 si s...
CrowdStrike mette l’IA contro l’IA: un m...
SAP NOW AI Tour, l'impresa autonoma pass...
Amazon Luna arriva su Prime Video: cloud...
HomeView, Apple pensa già al braccio rob...
Foto reale scartata come fake: Truebees ...
Jim Keller accelera su RISC-V e intellig...
Tutte le migliori offerte Amazon di oggi...
La bancarotta di Character.AI diventa un...
SanDisk Extreme da 128 GB a 31,96€ su Am...
Termoventilatori Dreo e Philips in offer...
Una ASUS ROG Astral RTX 5090 come regalo...
iPad Air 11'' M4 a 999€ con 256 GB su Am...
Sony WH-CH530 su Amazon a 49,90€ in tutt...
OpenCode colpito da un attacco di distil...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v