Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema codice

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Problema codice

    Ciao a tutti!!!
    Ecco il codice che mi dà come output una cosa che non vorrei, infatti quello che viene stampato su console è la seguente scritta: ciao_{azzurra }qui (dove
    la scritta azzurra è "evidenziata" in blu. Non capisco perchè debba lasciare così tanto spazio tra la fine della scritta azzurra e l'inizio della parentesi graffa???
    Io vorrei che l'output fosse: ciao_{azzurra}qui (con azzurra sempre "evidenziato"), come posso fare??????


    import java.awt.BorderLayout;
    import java.awt.Component;
    import javax.swing.BoxLayout;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;

    public class Frame extends JFrame {
    public Panel panel;

    class Panel extends JPanel{
    Panel(){
    this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
    JLabel label = new JLabel("ciao");
    JLabel label1 = new JLabel("{");
    JLabel label2 = new JLabel("<html><span style='background:#3366FF'>azzurra</span></html>");
    JLabel label3 = new JLabel("}");
    label1.setAlignmentY(Component.TOP_ALIGNMENT);
    label2.setAlignmentY(Component.TOP_ALIGNMENT);
    label3.setAlignmentY(Component.TOP_ALIGNMENT);
    JLabel label4 = new JLabel("qui");
    this.add(label);
    this.add(label1);
    this.add(label2);
    this.add(label3);
    this.add(label4);
    this.validate();
    }
    }

    Frame(){

    this.setBounds (30, 30, 1100, 750);
    this.getContentPane().setLayout(new BorderLayout());

    panel = new Panel();
    this.add(BorderLayout.NORTH,panel);

    this.setVisible(true);

    }
    public static void main(String args[]){
    Frame f = new Frame();



    }
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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

    Re: Problema codice

    Originariamente inviato da Azzurra85
    Non capisco perchè debba lasciare così tanto spazio tra la fine della scritta azzurra e l'inizio della parentesi graffa???
    Metti un:

    System.out.println(label2.getMaximumSize());

    e lo scopri ... il maximum width se lo imposta al massimo possibile, quindi si espande più che può. Credo .. immagino sia dovuto alla formattazione HTML.

    Soluzione:

    label2.setMaximumSize(label2.getPreferredSize());


    P.S.: il validate() non serve il container deve ancora essere visualizzato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107
    E''' vero..... Grazie mille!!!!!!

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.