Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-02-2005, 09: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, 09: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, 14: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, 15: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, 18: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, 19: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, 19: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, 20: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, 20: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, 20: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, 20: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, 20: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, 22: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, 01: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, 12: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, 13: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, 20: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, 09: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, 10: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


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Sale LAN, la Manovra 2027 introduce una ...
11 prezzi imperdibili in Amazon: non sol...
Giù i prezzi di Xiaomi 17T e Xiao...
Una tassa di 5,5 centesimi su ogni gigab...
Vuoi clonare un videogioco con l'IA? Cla...
Furto da 6,3 miliardi di dollari, Binanc...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
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: 17:09.


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