Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
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


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Google: prevista una produzione mostruos...
Rischia l'arresto per aver piallato lo s...
Colpo di scena nel packaging: TSMC copia...
Spenti i timori sull'IA e Microsoft vola...
Nothing Phone (3) a 519€: fotocamera 50M...
10 milioni di auto prodotte, ma il vero ...
ECOVACS T50 PRO OMNI Gen3 in offerta a 3...
Il router più economico della rete oggi ...
Chrome verso i due aggiornamenti a setti...
Microsoft travolta dai bug scoperti dall...
Aspirabriciole da 25.000Pa in offerta, m...
Microsoft riscrive il tasto destro di Wi...
Crisi memorie, crollo per i chip smartph...
Addio foto 'spia': la funzione degli occ...
Google Earth trasforma qualsiasi luogo c...
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: 09:43.


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