Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    10

    [JAVA] problema su visualizzazione label

    vi porterò via pochissimo tempo xkè penso sia davvero un problema stupido. Devo inserire una immagine in una label; questo compito è svolto da una classe che estende, appunto, la classe label.La classe DOVREBBE effettuare il caricamento della img dall'url specificato, quindi viene invocato il metodo paint con "repaint()" che dovrebbe provvedere ad inserire l'immagine. A questo punto ho notato,mettendo un system.out.println di prova proprio nel metodo paint, che questi non viene MAI invocato. E non capisco il motivo.
    In secondo luogo, nella classe del main,che contiene un frame,viene istanziato un oggetto di tipo areadraw; non dovrebbe comparire la label con la immagine?
    Riepilogando, ho questo problema:
    - sembra che, in areadraw, nn si riesca ad entrare nel paint e che nn venga caricata l'img nel label.Infatti un eventuale istanza di areadraw nella classe main dove c'è il frame, non da niente.

    di seguito la classe areadraw

    public class areadraw extends Label
    {
    Image immagine;

    public areadraw()
    {
    super();
    URL indirizzo=null;
    try
    {
    indirizzo = new URL("http://www.sonsofliberty.it/immagini/es_top.jpg");
    }
    catch (MalformedURLException e)
    {System.out.println ("URL che nn va bene...!");}
    immagine = this.getToolkit().getImage(indirizzo);
    repaint();
    }
    public void paint(Graphics g)
    {
    super.paint(g);
    g.drawImage(immagine,0,0,this);
    }
    }


    GRAZIE MILLE

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    sembra che il problema stia nel main...dopo che istanzi areadraw la aggiungi al frame? questo spiegherebbe anche perchè non entra mai nel metodo paint.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    10
    qnd istanzio areadraw non la aggiunge al frame
    un semplicissimo
    add(new areadraw())
    è come se nulla fosse.......
    grazie x la disponibilità

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ciao, non vorrei p!$ç!@r3 fuori dal boccale... ma sei costretto da specifiche particolari ad utilizzare i componenti di awt? In caso contrario, chiunque ti consiglierebbe di passare a swing (più performanti, più facilmente maneggiabili e con un look decisamente migliore, anche nei toolkit base)...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    allora...ho provato...ho fatto un jframe vuoto con pannello
    codice:
    jContentPane = new JPanel();
    jContentPane.setLayout(new BorderLayout());
    jContentPane.add(new areadraw(), BorderLayout.CENTER);
    e funziona perfettamente, se metto system.out.println(); me lo stampa pure nella console. La tua classe non l'ho modificata quindi il problema sta nel main.
    Hai un firewall? Forse blocchi la connessione a internet e non ti scarica l'immagine, devi aspettare anche un paio di secondi ...(anche se questo non spiega che non ti stampa system.out nel paint).
    Controlla meglio il main e in caso, per prova, incolla quello che ho fatto io su.
    Ciao

    EDIT: ho letto adesso il messaggio qui sopra, funziona anche con awt. :P

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da FelixR
    EDIT: ho letto adesso il messaggio qui sopra, funziona anche con awt. :P
    Sì... anche l'aeroplano dei fratelli Wright volava...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    Originariamente inviato da Andrea1979
    Sì... anche l'aeroplano dei fratelli Wright volava...
    no no davvero, non l'ho solo scritto, l'ho anche provato.
    Ho fatto un nuovo frame aggiunto un pannello e aggiunto la label tutto con awt, se vuoi posso mandarti il codice, ma puoi provarlo anche da solo
    Ovvio che swing è superiore in tutto, ma se è costretto a tenere awt gli ho fatto notare che il suo codice funziona anche con quello.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non metto in dubbio che il tuo codice funzioni. Assolutamente... è solo che... che senso ha comprare un macchina Euro1 quando la norma è Euro4. Se non ci sono motivi di fondo (e normalmente, la causa più comune dell'utilizzo dei componenti di awt è il fatto che si segua un libro di programmazione quanto meno datato...), del tipo: "il programma deve girare su un 286 con 20MB di hard disk, per cui la JVM del '96 non va", sarebbe meglio lasciare textfield, label e compagnia bella lì dove stanno.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.