Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-02-2005, 08:47   #1
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
[Java] JDBC e disegno di immagini

Sono ancora qui a chiedervi aiuto per Java... i mie problemi sono:
1) per poter utilizzare un databese con JDBC è necessario caricare i driver del DBMS tramite la shell; non esiste un modo per caricare questi driver senza che l'utente debba intervenire tramite comandi da shell (poichè l'utente medio non ha familiarità con essi)?
2) ho la necessità di disegnare un immagine in un pannello JPanel, il problema consiste nel fato che tale pannello è di dimensioni troppo ridotte per contenere l'immagine e non posso ridimensionare quest'ultima (per motivi estetici). Esiste un modo per indicare arbitrariamente le dimensioni del pannello (ho provato con il metodo setSize() ma non ha dato alcun effetto)?

Thx a tutti coloro che mi risponderrano
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2005, 08:55   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Re: [Java] JDBC e disegno di immagini

Quote:
Originariamente inviato da Falcon_DAoC
Sono ancora qui a chiedervi aiuto per Java... i mie problemi sono:
1) per poter utilizzare un databese con JDBC è necessario caricare i driver del DBMS tramite la shell; non esiste un modo per caricare questi driver senza che l'utente debba intervenire tramite comandi da shell (poichè l'utente medio non ha familiarità con essi)?

spiegati meglio, cos'e' che deve fare l'utente?
se l'utente chiama un batch (o uno script di shell) che setta il classpath aggiungendo i drivers jdbc non va bene?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2005, 13:18   #3
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
In poche parale devo semplicemente fare un'applicazione con una GUI per l'utente che possa accedere ad un database, il problema è che nelle applicazioni che utilizzano JDBC devono essere caricati i driver del DBMS che si intende utilizzare. Il caricamento viene effettuato tramite il passaggio di argomenti al comando "java" (o "javac") eseguito in sell in modo tale da aggiungerlo al classpath. Volevo trovare un modo per far si che l'applicazione stessa di Java caricasse tali driver senza il bisogno dell'intervento dell'utente da shell.
Mentre pensavo ad una soluzione ho trovato il metodo exec che permette di eseguire il codece contenuto in un file, quindi potrei aggirare il problema in questo modo... appena ho un attimo di tempo provo
Se qualcuno ha una soluzione migliore si faccia avanti, i consigili (e le critiche) son sempre ben accetti ^O^.

Thx

P.S: plz aiutatemi anche con il ridimensionamento del pannello ç_ç
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 14:24   #4
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
up
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 17:55   #5
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
per il primo problema prova una roba del genere:

Codice:
URL url = new URL("jar:file:/mypath/mydriver.jar");
String nomedriver = "il.mio.Driver";
URLClassLoader urlcl = new URLClassLoader(new URL[] { url });
DriverManager.registerDriver((Driver)Class.forName(nomedriver, true, urlcl).newInstance());


naturalmente il jar e il nome della classe che implementa Driver li devi avere
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 18:27   #6
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
Thx mille, ora provo
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 18:41   #7
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da Falcon_DAoC
Thx mille, ora provo


fammi sapere, non sono sicuro funzioni perche' qui non posso provare.
non vorrei che per ragioni di sicurezza DriverManager si rifiutasse di caricare una clase con un classloader diverso da quello di default.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 19:15   #8
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
mi da un MalformedURLException nell'istruzione:

URL url = new URL("jar:file:hsqldb/lib/hsqldb.jar");

e non ne capisco il motivo ?_?
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 19:19   #9
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
Ok ho risolto con:

URL url = new URL("jar:file:hsqldb/lib/hsqldb.jar!/");

poichè ho trovato sul sito della sun che ci vuole "!/", anche se non ne ho capito la necessità...
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 19:30   #10
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
uff ancora probelmi, ora mi da un IllegalArgumenException in:

DriverManager.registerDriver((Driver)Class.forName(nomedriver, true, urlcl).newInstance());

Ho spezzato l'istruzione in:

Driver driver = (Driver)Class.forName(nomedriver,true,urlcl).newInstance();
DriverManager.registerDriver(driver);

e mi da la stessa eccezione in:

Driver driver = (Driver)Class.forName(nomedriver,true,urlcl).newInstance();

Che potrebbe essere??
La variabile nomedriver contiene "jdbc:hsqldb:hsql".
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 19:49   #11
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
ok niubbata mia... sbagliato il nome del driver

String nomedriver = "org.hsqldb.jdbcDriver";
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 19:57   #12
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
mmm ora però da un prob che non credo essere in grado di risolvere... il codice è il seguente:
-----------------------------------------------------------------------------------
try
{
URL url = new URL("jar:file:hsqldb/lib/hsqldb.jar!/");
System.out.println("url OK");

String nomedriver = "org.hsqldb.jdbcDriver";
System.out.println("nome driver OK");

URLClassLoader urlcl = new URLClassLoader(new URL[] { url });
System.out.println("URL class loader OK");

Driver driver = (Driver)Class.forName(nomedriver,true,urlcl).newInstance();
System.out.println("Driver OK");

DriverManager.registerDriver(driver);
System.out.println("registrazione driver OK");
}catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null, e.toString());
}

Connection conn = null;
Statement stmt = null;
ResultSet rset = null;

try
{
conn = DriverManager.getConnection("jdbc:hsqldb:hsql://127.0.0.1:8888","sa","");
System.out.println("Connessione stabilita...");
stmt = conn.createStatement();
System.out.println("Statement creato...");
stmt.execute("DROP TABLE quotes IF EXISTS;");
System.out.println("Query eseguite...");
}catch(java.sql.SQLException sqlE)
{
javax.swing.JOptionPane.showMessageDialog(null, sqlE.toString());
}

try
{
rset.close();
System.out.println("Recordset chiuso...");
}catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null, e.toString());
}
try
{
stmt.close();
System.out.println("Statement chiuso...");
}catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null, e.toString());
}
try
{
conn.close();
System.out.println("Connessione chiusa...");
}catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null, e.toString());
}
-----------------------------------------------------------------------------------

Mi presenta un SQLException: No suitable driver all'istruzione:

conn = DriverManager.getConnection("jdbc:hsqldb:hsql://127.0.0.1:8888","sa","");

Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2005, 21:25   #13
tglman
Senior Member
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
Scusa ma se i driver li devi lanciare al momento dell'apertura del pogramma puoi creare un semplice programmino che appunto apra il tuò programma con i parametri inseriti correttamente.

mi pare che per le dimenzioni di un oggetto si debba usare setbound
tglman è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2005, 00:47   #14
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da Falcon_DAoC
conn = DriverManager.getConnection("jdbc:hsqldb:hsql://127.0.0.1:8888","sa","");


faccio una prova domattina, a quest'ora dubito di avere abbbastanza neuroni accesi per tentare solo di capire che succede
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2005, 11:12   #15
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
Quote:
Originariamente inviato da kingv
faccio una prova domattina, a quest'ora dubito di avere abbbastanza neuroni accesi per tentare solo di capire che succede
Ok, grazie mille per il tempo che mi stai dedicando
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2005, 12:10   #16
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
Quote:
Originariamente inviato da tglman
Scusa ma se i driver li devi lanciare al momento dell'apertura del pogramma puoi creare un semplice programmino che appunto apra il tuò programma con i parametri inseriti correttamente.
si quello si può fare e funziona, il problema è che se, per esempio preparo un *.bat da eseguire per poi lanciare il programma vero e proprio con i paramenti del caricamento driver, tale programma non sarà più multipiattaforma (io ho provato con il metodo exec()).

Quote:
Originariamente inviato da tglman
mi pare che per le dimenzioni di un oggetto si debba usare setbound
Il setBound() serve per settare posizione e dimensione ma funziona quasi esclusivamente sui Frame (o JFrame), purtroppo non da alcun effetto applicato ad un pannello o qualsiasi altro compoente grafico poichè essi seguono la disposizone indicata dal Layout. Questa almeno è la mia esperienza; esperienze contrarie son ben accette anche perchè mi toglierebbero un bel problema
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2005, 19:14   #17
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da Falcon_DAoC
Ok, grazie mille per il tempo che mi stai dedicando

ho provato, il problema è come supponevo che DriverManager non carica la classe come dovrebbe (probabilmente per il motivo che ho nominato prima).

ho trovato un "accrocchio" ma è una mezza schifezza, creati una classe:

Codice:
class FintoDriver implements Driver
{
  private Driver driver;
    FintoDriver (Driver driver)
  {
    this.driver = driver;
  }
  public boolean acceptsURL (String url) throws SQLException
  {
    return this.driver.acceptsURL (url);
  }
  public Connection connect (String url, Properties p) throws SQLException
  {
    return this.driver.connect (url, p);
  }
  public int getMajorVersion ()
  {
    return this.driver.getMajorVersion ();
  }
  public int getMinorVersion ()
  {
    return this.driver.getMinorVersion ();
  }
  public DriverPropertyInfo[] getPropertyInfo (String string,
                                               Properties p) throws
    SQLException
  {
    return this.driver.getPropertyInfo (string, p);
  }
  public boolean jdbcCompliant ()
  {
    return this.driver.jdbcCompliant ();
  }
}

e modifica la chiamata nel tuo codice così:
Codice:
 
Driver driver =  (Driver) Class.forName (nomedriver, true, urlcl).newInstance ();
DriverManager.registerDriver (new FintoDriver (driver));
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2005, 08:51   #18
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
OK, funziona tutto a dovere. Thx mille dell'aiuto che mi hai dato
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2005, 09:34   #19
Falcon_DAoC
Senior Member
 
L'Avatar di Falcon_DAoC
 
Iscritto dal: Jun 2004
Città: Brianza
Messaggi: 305
Qualcuno sa darmi una mano anche con questo:
2) ho la necessità di disegnare un immagine in un pannello JPanel, il problema consiste nel fato che tale pannello è di dimensioni troppo ridotte per contenere l'immagine e non posso ridimensionare quest'ultima (per motivi estetici). Esiste un modo per indicare arbitrariamente le dimensioni del pannello (ho provato con il metodo setSize() ma non ha dato alcun effetto)?

Thx
Falcon_DAoC è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Axiom Space e Prada mostrano lo strato i...
Uno dei satelliti Rassvet-3 di Bureau 14...
Con il razzo spaziale Lunga Marcia 9, la...
Cavi sottomarini come sensori: la Finlan...
Exodus è il nuovo Mass Effect? Il...
Lockdown Mode cambia il volto di ChatGPT...
Guild Wars 3 è ufficiale: ArenaNe...
I giocatori voltano le spalle a Linux? L...
Instagram Plus arriva in Italia: cosa in...
XBOX: la nuova CEO non ha ancora le idee...
Intel non ha intenzione di abbandonare i...
La AI Mode sarà attiva di default...
Marvel's Wolverine non sarà un op...
Star Wars Zero Company esce ad agosto: n...
Bonus Decoder: fino al 70% di sconto con...
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: 02:12.


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