2013-02-06 20 views
7

Quindi ho un JTextArea che mostra il testo direttamente dall'angolo in alto a sinistra. Voglio un margine su tutti e 4 i lati, quindi c'è un po 'di spazio tra il testo e il limite dell'area.Aggiunta di margini in una JTextArea?

Ho studiato molto e non ho trovato nessuna soluzione. Come posso farlo?

Inoltre, stavo pensando di mettere un'etichetta su tutti e 4 i lati per creare un margine fittizio. Come posso creare un JLabel con una certa larghezza e altezza?

+2

Può essere Non capisco la sua domanda. Non puoi usare 'setMargin()'? – Smit

+0

Esattamente ciò che @Smit ha detto. [Relevant javadocs] (http://docs.oracle.com/javase/6/docs/api/javax/swing/text/JTextComponent.html#setMargin%28java.awt.Insets%29). Il ['Insets'] (http://docs.oracle.com/javase/6/docs/api/java/awt/Insets.html) sono solo 4 valori in pixel che rappresentano la dimensione del margine per il top, lato inferiore, sinistro e destro. – Brian

+0

AFAICT, questo è quello che sta cercando. L'impostazione di un bordo non è buona perché lascerebbe cadere il bordo predefinito predefinito. Un bordo composto potrebbe aiutare a risolvere il problema, ma il suo problema è che usare setMargin –

risposta

10

Forse non capisco correttamente la tua domanda. Tuttavia è possibile utilizzare setMargin()

// set the margin for all four sides 
tt.setMargin(new Insets(10,10,10,10)); // tt is JTextArea instance 

Alcuni Link Importanti

1. setMargin API

2. Class Insets

+0

non lo sapeva mai! – user2027425

+1

(@Smit, seguendo i nostri commenti precedenti): preferisco non impostare un bordo perché rimuove il bordo del campo di testo previsto. Se vuoi comunque utilizzare un bordo, puoi combinare il bordo esistente del campo di testo con un bordo di composizione e un bordo vuoto come bordo interno o esterno (a seconda dell'effetto che stai cercando di ottenere). Se è quello interno, preferisco usare setMargin(), più semplice e più robusto. –

+0

@GuillaumePolet +1 Grazie per informazioni. Se vuoi puoi anche aggiungere questa risposta. – Smit