Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    15

    getClass() in un inner class

    Ciao a tutti.
    Ho creato una classe di utilità che contiene una decina di inner class che estendono JLabel.

    Per poter caricare un'immagine uso getClass().getResource("img/ostacoli/nomefile.png").

    Ora volevo chiedervi se può funzionare il getClass anche in un inner class oppure sto sbagliando. Anche perchè mi dice che non riesce a trovare il file. Ho provato anche ad istanziare una variabile Class nella classe outer e poi usare quella variabile per richiamare il getResource() ma continua a darmi il problema. Da cosa può dipendere?

    codice:
    public final class Ostacolo {
        private Class c = getClass();
        
        //LABEL OSTACOLI
        public class AltoSx extends JLabel{
                public AltoSx(){
                    super(new ImageIcon(c.getResource("/img/altosx.png")));
                }
            }//class AltoSx
            ................
         
        private Ostacolo(){}    public static JLabel get(String s){
            Ostacolo o = new Ostacolo();
            switch(s.toLowerCase()){
            case "altosx"      : return o.new AltoSx();
                    ...............

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Capa[00] Visualizza il messaggio
    contiene una decina di inner class che estendono JLabel.
    Se AltoSx ecc... non hanno bisogno di accedere allo "stato" della classe contenitore (e credo di no), si potevano (anzi dovevano) fare come "nested" class (static).

    Quote Originariamente inviata da Capa[00] Visualizza il messaggio
    Per poter caricare un'immagine uso getClass().getResource("img/ostacoli/nomefile.png").
    Non serve per forza getClass().

    NomeDiUnaTuaClasse.class.getResource( .... )

    Cioè generalmente in questi casi basta un class "literal".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.