Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-10-2009, 09:50   #1
davide_sana
Junior Member
 
Iscritto dal: Apr 2009
Messaggi: 27
[JAVA] Inserimento immagine in Frame

Salve a tutti.
Ho il seguente problema. Vorrei inserire un'immagine in un JFrame. La soluzione credo dovrebbe essere : creare un'icona con l'immagine e metterla dentro una label, dopo aggiungere la label al frame.

Il codice scritto è il seguente:

JLabel sfondo_davide = new JLabel(new ImageIcon("me.jpeg"));
JFrame nuovo_davide = new JFrame("Ciao Davide");

//assegno la label al frame
nuovo_davide.add(sfondo_davide);

nuovo_davide.setBounds(300,300,LARGHEZZA,ALTEZZA);
nuovo_davide.setVisible(true);

Il problema è che quando il frame si apre nn visualizza nessuna immagine ma solo una schermata grigia con il titolo finestra da me scelto. L'immagine me.jpg che vorrei caricare è su desktop.

Dov'è sta l'errore?
Ed inoltre, è corretto scrivere "me.jpeg" visto che l'immagine sta sul desktop?
davide_sana è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2009, 10:17   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
La stringa che passi al costruttore di ImageIcon denota un file. In java quando è richiesto il nome di un file e non ne viene fornito il percorso assoluto, la stringa relativa viene trasformata in un file preponendo alla stessa il valore della variabile di sistema user.dir. Tale variabile indica il percorso della directory di lavoro del processo java.

A conti fatti tu scrivi:

"me.jpeg"

e ImageIcon capisce:

System.getProperty("user.dir") + File.separator + "me.jpeg"

Se lanci il programma Java da "c:\bingo" allora ImageIcon capirà:

"c:\bingo\me.jpeg"

Poichè il percorso assoluto dell'immagine dipende dal percorso della directory di lavoro ecco che l'immagine è trovata o non trovata a seconda di come sia eseguito il programma stesso.

Una soluzione - peraltro non consigliabile in un contesto reale ma più che accettabile durante l'apprendimento - consiste nello specificare il percorso assoluto dell'immagine. Supponendo che "me.jpeg" sia in "C:\Documents and Settings\utente\desktop" dirai:


JLabel sfondo_davide = new JLabel(new ImageIcon("c:\\Documents and Settings\\utente\\desktop\\me.jpeg"));

Verifica il percorso e, in particolare, controlla che il file immagine abbia effettivamente estensione "jpeg" e non solo "jpg".
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2009, 10:39   #3
davide_sana
Junior Member
 
Iscritto dal: Apr 2009
Messaggi: 27
Grazie.
Il problema stava proprio nella descrizione del percorso dell'immagine.

Ne approfitto per chiederti la seguente. Supponiamo di avere un frame con diversi bottoni. Cliccando su uno di questi bottoni si apre un nuovo frame. Come faccio a rendere nn selezionabile il frame precedente? ovvero vorrei che,una volta aperto il nuovo frame, siamo possibili operazioni solo sui bottoni del nuovo frame aperto.
davide_sana è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2009, 11:05   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Anzichè aprire un nuovo JFrame apri un nuovo JDialog. JDialog è una finestra simile a JFrame, ma a differenza di quest'ultima, è in grado di prevalere obbligatoriamente su un'altra finestra.

Supponendo che la finestra principale sia "finestra001", alla pressione del pulsante dirai:

JDialog finestra002 = new JDialog(finestra001, "Titolo Finestra 002", Dialog.ModalityType.APPLICATION_MODAL);

//imposta il contenuto di finestra002, la posizione, la dimensione eccetera

finestra002.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
finestra002.setVisible(true);

Dopo il setVisible e finchè finestra002 è visibile l'interazione con altre finestre dello stesso programma è impedita - e, dunque, è impedito l'uso del contenuto di quelle finestre.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2009, 12:54   #5
davide_sana
Junior Member
 
Iscritto dal: Apr 2009
Messaggi: 27
Ho scritto il seguente codice:

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

class Window extends JFrame
{
public static final int LARGHEZZA = 400;
public static final int ALTEZZA = 250;

public static void main(String[] args) {

JFrame finestra = new JFrame ("Prova");
JPanel pannello = new JPanel (new BorderLayout());
JButton Avanti = new JButton ("Avanti");
pannello.add(Avanti);
finestra.setBounds(300,300,LARGHEZZA,ALTEZZA);
finestra.setVisible(true);

//aggiungo il pannello al frame nello spazio in basso
finestra.getContentPane().add(pannello, BorderLayout.PAGE_END);

//registra evento click su Avanti
Avanti.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

JDialog finestra2 = new JDialog(finestra, "Titolo Finestra 002",
Dialog.ModalityType.APPLICATION_MODAL);
finestra2.setBounds(300,300,LARGHEZZA,ALTEZZA);
finestra2.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
finestra2.setVisible(true);

}
});

finestra.addWindowListener(new WindowAdapter()

{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}

Si apre il primo frame..ma quando clicco su "Avanti" si genera errore..e l'errore lo segnale nella seguete istruzione:

JDialog finestra2 = new JDialog(finestra, "Titolo Finestra 002",,
Dialog.ModalityType.APPLICATION_MODAL);

e in particolare nn riconosce "finestra".

Dove commetto l'errore?
davide_sana è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2009, 13:03   #6
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
usa i tag code quando inserisci del codice per preservarne l'indentazione nel forum.

Il codice così com'è non dovrebbe neppure compilare. La ragione sta in ciò che la variabile locale "finestra" è usata nel corpo di una classe locale (new ActionListener() {...}). Il linguaggio stabilisce che tale variabile locale debba essere dichiarata "final":

Codice:
final JFrame finestra = new JFrame("prova");
...
avanti.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        JDialog finestra2 = new JDialog(finestra, "titolo", Dialog.ModalityType.APPLICATION_MODAL);
        finestra2.setSize(new Dimension(LARGHEZZA, ALTEZZA);
        finestra2.setLocation(300, 300);
        finestra2.setVisible(true);
    }
});
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2009, 14:13   #7
davide_sana
Junior Member
 
Iscritto dal: Apr 2009
Messaggi: 27
Grazie!
davide_sana è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
Carburanti, dopo Eni anche IP annuncia u...
HEO Space ha rilasciato una nuova immagi...
La missione Artemis III sarebbe in ritar...
Apple apre Music Hall, una sala concerto...
Adobe arriva su Gemini e Claude: nuove f...
Non solo Fideuram: quasi 2 milioni di it...
I lettori CD di fascia alta potrebbero s...
Tutto il meglio di Amazon weekend: 5 nov...
Proscenic P15+ a 113€ su Amazon: scopa e...
TP-Link Wi-Fi 6 a 59,99€ e Tenda 4G03 Pr...
Un quasi top di gamma a 461€: lo smartph...
Roborock Saros 20 Neo e Flow Complete: 3...
Mac mini si trasforma: chip a 2 nanometr...
Su Amazon c'è un super TV Samsung...
La Cina ha rilasciato un satellite dallo...
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: 04:01.


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