Domanda

Tutti, ho qualche problema con Java che ho creato il pannello con cinque righe e una colonna, ho anche aggiunto il pulsante a una delle righe, alla fine ho aggiunto questo pannello al telaio e ho ricevuto il pulsante che è allungato a Full Frame, Can Riduco le dimensioni del pulsante, ho usato

myButton.setSize(10,10);

Ma non sembra funzionare, anche io uso

frame.pack();

Possa essere il problema, grazie in anticipo

È stato utile?

Soluzione

Dovresti astenersi dall'impostazione delle dimensioni da solo. Dovresti selezionare un adeguato LayoutManager Questo fa il lavoro per te.

(A meno che tu non lo faccia esplicitamente setLayout(null) Le dimensioni impostate verranno scartate e l'attuale gestore di layout assegnerà nuove dimensioni ai componenti.)

Dici che stai usando un GridLayout. Questo layout è abbastanza "non flessibile" e se vuoi i benefici di GridLayout Ma più flessibilità, potresti dare GridBagLayout un tentativo.

Se non trovi un gestore di layout che soddisfi le tue esigenze, non aver paura di scriverne uno tuo. (Sono cinque metodi relativamente facili da implementare.)

Se pubblichi uno schermo della tua applicazione attuale e una spiegazione su come vuoi che sembri, saremo in grado di aiutarti ulteriormente.

Alcuni collegamenti utili

Altri suggerimenti

Quando si utilizzano i gestori di layout (come GridLayout) quindi chiama a setSize() Generalmente non funziona, perché alla fine il gestore di layout decide come dimensioni e posizionare ogni componente in un contenitore.

Quello che puoi fare è chiamare setPreferredSize(), setMaximumSize() e/o setMinimumSize(). A seconda del gestore di layout in uso una o più di queste richieste (perché è davvero quello che sono) sarà onorato. Quando chiami frame.pack() Proverà a dimensionare tutto nel contenitore (e nel subcontainer) alle loro dimensioni preferite.

Quindi, nel tuo caso, chiamando myButton.setPreferredSize (10, 10); Probabilmente funzionerà. Tuttavia, verrà comunque ridimensionato se il contenitore cambia dimensione. Se non lo vuoi, ci sono altre soluzioni che posso pubblicare.

Quando Aloobe sembra avere una soluzione più generale per te. Direi che la soluzione immediata sarebbe quella di aggiungere il pulsante a un JPanel, impostare il layoutManager un layout come Gridlayout o un altro LayoutManager, se trovi un altro in forma.

E aggiungi questo pannello al pannello originale, al posto del pulsante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top