Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18

    [java] sfondo programma

    Salve a tutti ho un problema...
    devo mettere uno sfondo al mio programma...
    io uso la swing...quindi ho un Jframe..un contenitore e il pannello...

    ho provato così :

    ImageIcon immagine=new ImageIcon("baddayww4.jpg");
    JLabel sfondo=new JLabel(immagine);
    sfondo.setBounds(0,0,400,250);
    this.getContentPane().add(sfondo);

    solo che praticamente lo sfondo me lo mette al di sopra di tutto e non si vede + nnt..nè bottoni nè niente...come posso fare x risolver il prb? ho provato ad applicare lo sfondo al pannello ma nnt..è lo stesso!!
    grazie anticipatamente ..
    saluti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] sfondo programma

    Originariamente inviato da ssimxp
    devo mettere uno sfondo al mio programma...
    io uso la swing...quindi ho un Jframe..un contenitore e il pannello...
    Una soluzione è quella di creare una tua classe che estende JPanel. In questa classe si fa l'override di paintComponent() per disegnare lo sfondo. Questo pannello lo metti come componente principale nel tuo JFrame. A questo punto sarà il pannello a contenere poi tutti gli altri componenti.

    Avevo fatto un esempio in questa discussione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18
    fammi capir bene..tu dici di creare un'altro pannello dove poi mettere l'immagine d sfondo?ho visto l'esempio ma tutto ciò per far la " piccolezza " dell'immagine??

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ssimxp
    tu dici di creare un'altro pannello dove poi mettere l'immagine d sfondo?
    Sì, è una soluzione sicuramente valida. Un JPanel è comodo, puoi metterlo dove vuoi, anche all'interno di altri componenti.

    Tra l'altro c'è anche una possibilità interessante di utilizzo del pannello. I vari componenti top-level come JFrame, JDialog e alcuni altri sono strutturati in modo da avere un "content pane". Quando si chiama getContentPane(), il tipo di ritorno è Container ma a livello pratico quello che viene creato per default è un JPanel. Quindi si può anche sostituire il content pane originale con il JPanel speciale per lo sfondo usando setContentPane(). A quel punto il resto del codice potrebbe anche "non sapere" nulla di questo content pane speciale.

    Nell'esempio di codice che avevo postato mi ero limitato ad aggiungere il BackgroundPanel al content pane piuttosto che a sostituirlo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18
    un'informazione...forse mi sto avvicinando alla soluzione..
    pensavo di fare un pannello dietro con lo sfondo e quello davanti con tutte le componenti con lo sfondo trasparente...
    e alloa ho messo le seguenti istruzion:

    ImageIcon immagine=new ImageIcon("baddayww4.jpg");
    JLabel sfondo=new JLabel(immagine);
    sfondo.setBounds(0,0,400,250);
    back.add(sfondo);
    back.add(p);
    int r=21;
    int g=96;
    int b=97;
    int a=600;
    Color c= new Color(r,g,b,a);
    p.setBackground(c);
    p.setOpaque(true);


    solo che non sò che valori dare a r,g,b e a.....per far sì che il pannello diventi trasparente..

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18
    e sn ancora fermu...help me!!

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ssimxp
    un'informazione...forse mi sto avvicinando alla soluzione..
    Io una soluzione l'ho già indicata e postata: estendere JPanel e disegnare la immagine o quello che si vuole nel paintComponent(). Non vedo alcuna difficoltà o complessità particolare nel fare una cosa del genere.

    Originariamente inviato da ssimxp
    pensavo di fare un pannello dietro con lo sfondo e quello davanti con tutte le componenti con lo sfondo trasparente...
    Non vedo perché devi andare ad usare il posizionamento assoluto. Cosa che comporta altre questioni e rende necessario togliere il layout manager.
    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.