Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [SWING] Size JButton

  1. #1

    [SWING] Size JButton

    salve ragazzi... avrei bisogno di un piccolo aiutino.
    Ho creato una matrice di bottoni 8*8 e la sono andato ad inserire in un JPanel con GridLayout 8*8... I bottoni mi servirebbero quadrati, dunque prima di inserirli nel jPanel ho utilizzato il metodo setSize(int arg0, int arg1) con i parametri da me desiderati.. Tuttavia nel momento in cui lancio il frame mi ritrovo una matrice con bottoni rettangolari; ho provato a controllare le dimensioni dei bottoni con il debug di Eclipse prima e dopo l'aggiunta al pannello e ho riscontrato che, nonostante altezza e larghezza presentino i valori da me impostati, il tutto mi si presenta come appena descritto..
    Qualche suggerimento? Please..

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

    Re: [SWING] Size JButton

    Originariamente inviato da xXAndreaXx
    Ho creato una matrice di bottoni 8*8 e la sono andato ad inserire in un JPanel con GridLayout 8*8... I bottoni mi servirebbero quadrati, dunque prima di inserirli nel jPanel ho utilizzato il metodo setSize(int arg0, int arg1) con i parametri da me desiderati.. Tuttavia nel momento in cui lancio il frame mi ritrovo una matrice con bottoni rettangolari; ho provato a controllare le dimensioni dei bottoni con il debug di Eclipse prima e dopo l'aggiunta al pannello e ho riscontrato che, nonostante altezza e larghezza presentino i valori da me impostati, il tutto mi si presenta come appena descritto..
    Se usi setSize sui componenti che inserisci nel GridLayout ..... non serve a nulla. setLocation+setSize o setBounds si usano quando il componente si mette in un contenitore senza layout manager.

    Potresti impostare un setPreferredSize sui pulsanti ma .... se il JPanel che ha il GridLayout lo metti a sua volta in un contenitore che non "rispetta" il preferred size (es. la parte CENTER di BorderLayout del content pane del JFrame), di nuovo è inutile.

    Quindi, dove metti questo JPanel?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    ah, ecco.. io lo aggiungo ad un altro pannello che a suo volta aggiunto al JFrame.. in questo pannello "padre" oltre al pannello della matrice ho delle Label.. Se io usassi il setPreferredSize() su sto pannello padre, poi mi cambierebbero pure le Label? oppure come posso fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    23
    //setta il layout a null:
    pannello.setLayout(null);
    //con due cicli for sistemi manualmente ma "dinamicamente" allo stesso tempo i bottoni da fare quadrati.
    for(int i=0; i<righe; i++)
    {
    for(int j=0; j<colonne; j++)
    {
    //qui setti le coordinate del bottone. (questo esempio funziona con bottoni 30x30)
    bottone[i][j].setBounds(i*30,j*30,30,30);
    }
    }

    ricorda che questo ciclo itera prima le colonne e poi le righe, nel senso: disegna tutte le righe della colonna 0, poi tutte le colonne della riga 1, ecc, ecc.

    se i tuoi bottoni quadrati sono diversi da 30x30, basta che nell'unica riga dove vedi 30 ci metti la dimensione che vuoi te. ciao!

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.