Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java] Sovrapposizione controlli

    Ciao a tutti!!!!
    Stò creando un interfaccia grafica in Java utilizzando il NetBeans IDE, ed ho un piccolo problemino...
    Mi sono creato un JFrame su cui mettere ciò che mi serve, utilizzando un JLabel mi sono messo un'immagine, ora su ques'etichetta vorrei poter sovrapporre altre label o altri controlli come le textentry, ma non mi è permesso! Se tento di sovrapporlo, l'oggetto mi viene automaticamente spostato di lato oppure sotto la prima etichetta!
    Come posso risolvere?
    Inoltre, è corretto caricare l'immagine utilizzando il Jlabel oppure esiste un qualcosa di apposito, tipo un imagebox?
    Grazie a tutti...
    Ciao!!!
    Enigma

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ciao. Allora chiaramente è corretto (e consentito) usare una JLabel e associarle un'immagine, ma non ti aiuterà ad ottenere il risultato che vuoi. Una JLabel è un componente che non può contenere altri componenti, per cui, occupa uno spazio a lei destinato e non vi puoi sovrapporre niente. Ottieni il risultato che desideri inserendo l'immagine come sfondo di un componente contenitore, quale ad esempio un JPanel. Qui sul forum se n'è parlato diverse volte su come customizzare il paintComponent affinché lo sfondo di default venga sostituito da una tua immagine. Fai una ricerca.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Ciao, ok chiaro!
    Ho provato a cercare il thread ed infatti esistono, ma non chi ho capito molto.
    Supponiamo che io abbia il mio JFrame, su di questo ho messo un JPanel chiamato jPanel1.
    Ora cosa devo fare? Ovvero come carico l'immagine e la forzo a sfondo del mio pannello?
    Grazie!

    PS: Si in teoria è proprio quello che mi serve, in questo modo posso sovrapporgli altri controlli a piacere...
    Enigma

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora non hai letto un bel niente... c'è solo da copiare e incollare. Consiglio: butta via l'editor grafico se non hai le idee più che chiare su quel che vuoi fare e sugli strumenti che stai utilizzando... vai in vista codice, creati una tua classe myPanel che estenda JPanel a cui passare un file (anche via String)

    codice:
    private class BGJPanel extends JPanel {
            
            private Image img;
            
            public BGJPanel(String file) {
                super();
                ImageIcon imgIcon = new ImageIcon(file);
                this.img = imgIcon.getImage();
            }
            
            public void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawImage(img, 0, 0, null);
            }
        }
    A questo punto jpanel1 non sarà un JPanel ma un BGJPanel. Il resto è uguale.
    <´¯)(¯`¤._)(¯`»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.