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

    BoxLayout + larghezza fissa

    Un BoxLayout CRETINISSIMO, del tipo:

    codice:
    JPanel p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
    ...
    p.add(scrollPane);
    p.add(Box.createHorizontalGlue());
    ...
    p.add(image)
    p.add(Box.createHorizontalGlue());;
    http://design.homeunix.org/~rox/layout.jpg

    Voglio che quel maledetto JList (in uno JScrollPane) abbia dimensione FISSA, ma proprio non ci riesco, o se ci riesco.. non sempre funge. E sto incominciando a scocciarmi..

    Grazie.

  2. #2
    non so se ho ben capito il problema, anche perchè nel pezzo di codice che hai postato non vedo riferimenti alla JList, ma per darle una dimensione fissa devi usare il metodo setPreferredSize:

    JList l = new JList()
    l.setPreferredSize(new Dimension (X, Y))

    dove X e Y sono ovviamente le dimensione che vuoi dare.

    N.B.: se la JList la inserisci in una JScrollPane, al JPanel devi aggiungere direttamente la JSP e non la JList; e inoltre se la dimensione della JList è < della dim del JFrame principale la JSP non verrà visualizzata in quanto "inutile"

  3. #3
    http://rafb.net/paste/results/1ZGH8M42.html

    Questo e` piu` chiaro. Cmq .setSize() .setPreferredSize() e .setFixedCellWidth() non fanno assolutamente nulla ..

  4. #4
    Sorry ma ho scritto una cazzata colossale!!!
    La dimensione prestabilita la devi assegnare alla JSP e non alla JList!

    Prova, a me funziona

  5. #5
    Sono tornato al GridBagLayout. La JList ora sembra tenere la larghezza fissa, ma ho un altro problema.. "anchor" non fa una fottuta minchia. Cmq io lo imposti mi allinea sempre come cazzo gli pare..

    codice:
    		p = getContentPane();
    
    		// slides
    		p.setLayout(new GridBagLayout());
    
    		GridBagConstraints c = new GridBagConstraints();
    		c.fill = GridBagConstraints.BOTH;
    
    		String[] asd = new String[100];
    		Arrays.fill(asd, "ASD");
    		listThumbs = new JList(asd);
    		JScrollPane scroller = new JScrollPane(listThumbs);
    		scroller.setPreferredSize(new Dimension(120, Integer.MAX_VALUE));
    		c.anchor = GridBagConstraints.FIRST_LINE_START;
    		c.gridx = 0;
    		c.gridy = 0;
    		c.weightx = 0.0;
    		c.weighty = 1.0;
    		c.ipadx = 120;
    		p.add(scroller, c);
    
    		picSlide = new JLabel();
    		picSlide.setIcon(new ImageIcon("C:/Documents and Settings/rox/My Documents/Immagini/stateoftheart.png"));
    		picSlide.setBorder(BorderFactory.createEtchedBorder());
    		c.anchor = GridBagConstraints.CENTER;
    		c.gridx = 1;
    		c.gridy = 0;
    		c.weightx = 1.0;
    		c.weighty = 1.0;
    		p.add(picSlide, c);
    Ecco il risultato:

    http://design.homeunix.org/~rox/layout.jpg

    Sto impazzendo.

  6. #6
    guarda un pò se ti può essere d'aiuto...

    import java.awt.Container;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import javax.swing.BorderFactory;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;

    public class Prova extends JFrame
    {
    private Container cont;
    private GridBagConstraints GBC;
    private JPanel p;

    public Prova()
    {
    super("Prova");

    this.setSize(800, 600);
    cont = this.getContentPane();

    p = new JPanel();
    p.setLayout(new GridBagLayout());


    String[] asd = new String[100];
    for (int i=0; i<100; asd[i++]="ASD");

    JList listThumbs = new JList(asd);
    JScrollPane scroller = new JScrollPane(listThumbs);
    GBC = new GridBagConstraints();
    GBC.fill = GridBagConstraints.BOTH;
    GBC.anchor = GridBagConstraints.WEST;
    GBC.gridx = 0;
    GBC.weightx = 1;
    p.add(scroller, GBC);

    JLabel picSlide = new JLabel();
    picSlide.setIcon(new ImageIcon("C:/Documents and Settings/Anna - Davide/Desktop/Appunti.jpg"));
    picSlide.setBorder(BorderFactory.createEtchedBorde r());
    GBC = new GridBagConstraints();
    //GBC.anchor = GridBagConstraints.WEST;
    //GBC.anchor = GridBagConstraints.CENTER;
    //GBC.anchor = GridBagConstraints.EAST;
    GBC.gridx = 1;
    GBC.weightx = 10;
    p.add(picSlide, GBC);

    cont.add(p);

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
    this.setVisible(true);
    }


    public static void main(String[] args)
    {
    new Prova();
    }
    }

  7. #7
    Grazie della dritta.. Evidentemente rimaneva qualcosa di trovo nei vincoli quando andavo ad aggiungere la JLabel. Ora sistemo.

    Grazie ancora.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.