Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Bax-88
    Registrato dal
    May 2009
    Messaggi
    14

    JDialog non visualizza un JLabel

    ciao a tutti!
    sto utilizzando un applicativo con dei JDialog, ed al loro interno ci voglio mettere dei JLabel...

    io ho scritto tutte le istruzioni... ma quando vado ad eseguire il programma non mi visualizza i JLabel nel JDialog...
    questo è il frammento:

    dialog=new JDialog();
    dialog.setSize(1000,600);
    panel=new JPanel();
    panel.setBackground(Color.BLACK);
    panel.setLayout(null);
    dialog.getContentPane().add(panel);
    dialog.setUndecorated(true);
    dialog.setVisible(true);

    close=new JLabel(new ImageIcon("C:/Documents and Settings/davide/Desktop/Math/immaginiFrame/Close.PNG"));
    close.setVisible(true);
    close.setBounds(x-36,4,32,32);
    close.addMouseListener(this);
    dialog.add(close);

    questo è quello che c'è dentro il costruttore... non mi visualizza i JLabel...
    Quando si verifica un problema al pc, l'informatico, quello vero, spegne e riaccende.

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

    Re: JDialog non visualizza un JLabel

    Originariamente inviato da Bax-88
    questo è quello che c'è dentro il costruttore... non mi visualizza i JLabel...
    Ci sono diverse cose da farti notare:

    a) Hai tolto il layout manager nel JPanel .... il JPanel lo aggiungi nel content pane e nota che l'add() che hai usato, per default lo mette nella parte CENTER del BorderLayout del content pane.

    b) Hai creato un JLabel. A patto che il path della immagine sia corretto, la istanziazione è corretta. Il setVisible(true) su JLabel (in generale sui componenti) è superfluo ... la visibilità è già a true per default.

    c) Hai usato setBounds() sul JLabel. Il setBounds serve quando un componente lo si mette in un contenitore senza layout manager (altrimenti è inutile). Ma tu aggiungi la label nel content pane della dialog, che ha il BorderLayout. Quindi la label viene messa nella parte CENTER del BorderLayout e non con le dimensioni che vuoi tu. Oltretutto c'era già un componente nella parte CENTER .... è il pannello. Quindi vedresti solo l'ultimo messo nella parte CENTER ovvero la label e non il pannello.

    Però la label non la vedi e per un motivo semplicissimo. Il dialog.setVisible(true) l'hai fatto prima di aggiungere la label!!! Quindi innanzitutto metti questo setVisible alla fine di tutto!
    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.