Dimensione e posizione di un componente in JMenuBar

di il
4 risposte

Dimensione e posizione di un componente in JMenuBar

Ciao a tutti, come da titolo ho un problema, ovvero ho creato una JMenuBar con vari JMenu e ho la necessita di inserire un JButtone una JTextField. Di questi ultimi due componenti non riesco a gestire la lunghezza e la loro posizioe nella JMenuBar , vorrei sapere come posso dargli una lunghezza e inserirli in una posizione qualsiasi della menubar senza che vengano per forza messi di seguito ai componenti gia presenti? Grazie!

4 Risposte

  • Re: Dimensione e posizione di un componente in JMenuBar

    SsaLaroLana ha scritto:


    vorrei sapere come posso dargli una lunghezza e inserirli in una posizione qualsiasi della menubar senza che vengano per forza messi di seguito ai componenti gia presenti?
    JMenuBar di norma serve per contenere dei JMenu ... non componenti qualunque (sebbene sia tecnicamente possibile mettere altri componenti).
    E che io sappia, JMenuBar ha per default un layout manager che sostanzialmente è un BoxLayout, quindi un layout che fa stare "in fila" (orizzontale evidentemente) i componenti (menù appunto tipicamente).

    Se vuoi cambiargli layout manager .... fai pure, nessun problema tecnico di per sé. Ma "stravolgi" un po' l'uso standard di JMenuBar.
  • Re: Dimensione e posizione di un componente in JMenuBar

    Ciao,grazie della risposta! Ciò che mi hai detto è chiaro, pero quello che interessa a me è dare una lunghezza diversa a un componente rispetto ad un altro! Il JMenuBar suddivide i componenti esattamente come un GridLayout, assegnando ugual spazio e quindi uguali dimensioni a tutti i componenti! Mentre invece io nel JMenuBar tra le cose che ho,ho una JTextArea di cui vorrei gestire personalmente la lunghezza...ma non riesco a trovare un modo per farlo!
  • Re: Dimensione e posizione di un componente in JMenuBar

    SsaLaroLana ha scritto:


    Il JMenuBar suddivide i componenti esattamente come un GridLayout, assegnando ugual spazio e quindi uguali dimensioni a tutti i componenti!
    No, falso.

    Tre menù es. (mb è JMenuBar):

    mb.add(new JMenu("File"));
    mb.add(new JMenu("Strumenti"));
    mb.add(new JMenu("?"));

    stanno in fila, ciascuno con la propria "giusta" dimensione. Non hanno la stessa dimensione!

    SsaLaroLana ha scritto:


    Mentre invece io nel JMenuBar tra le cose che ho,ho una JTextArea
    Curiosità mia .... perché in un JMenuBar ci devi infilare "di tutto"? Cos'è che non riesci a fare altrimenti? Boh ....
  • Re: Dimensione e posizione di un componente in JMenuBar

    SsaLaroLana ha scritto:


    Il JMenuBar suddivide i componenti esattamente come un GridLayout
    Scusate, volevo ancora far presente una cosa: la affermazione sopra è falsa in generale, ma c'è effettivamente un caso particolare in cui BoxLayout (e quindi anche nei menubar) fa "distribuire" equamente lo spazio. Succede quando dei componenti nel BoxLayout hanno un maximum width o height (secondo la direzione del BoxLayout) molto grande e c'è abbastanza spazio per cui possono espandersi. In tal caso BoxLayout "rispetta" il maximum size e fa in modo che questi componenti si spartiscano equamente lo spazio rimanente (a meno di altri componenti che non si espandono).

    Se non fosse chiara questa mia precisazione, posso anche fare un esempio.
Devi accedere o registrarti per scrivere nel forum
4 risposte