2012-04-23 10 views
5

Jak mówi tytuł, próbuję po prostu ustawić marginesy (zapewnić dopełnienie) w obiekcie TextArea za pomocą zestawu LineBorder. Bez ustawienia granicy, .setMargins działa dobrze. Oto konkretny fragment kodu.Java Swing - ustawianie marginesów na stronie TextArea z obramowaniem linii

aboutArea = new JTextArea("program info etc....."); 

Border border = BorderFactory.createLineBorder(Color.BLACK); 

aboutArea.setSize(400, 200); 
aboutArea.setBorder(border); 
aboutArea.setEditable(false); 
aboutArea.setFont(new Font("Verdana", Font.BOLD, 12)); 

add(aboutArea); 

Próbowałem każdego z nich:

aboutArea.setMargins(10,10,10,10); 
.getBorders(aboutArea).set(10,10,10,10); 
UIManager.put("aboutArea.margin", new Insets(10, 10, 10, 10)); 

ale nic nie wpływa na marże po ubiegać granicę, wyściółka jest zawsze 0. Wszelkie pomysły jak ustawić padding na textarea z granica?

+2

Kluczem do '' marginesu JTextArea' jest "TextArea.margin "'. – trashgod

Odpowiedz

26

Co jeśli spróbujesz dodawania CompoundBorder, nie będzie to zrobić, to daje prawie to samo

JTextArea tarea = new JTextArea("program info etc."); 
Border border = BorderFactory.createLineBorder(Color.BLACK); 
tarea.setBorder(BorderFactory.createCompoundBorder(border, 
      BorderFactory.createEmptyBorder(10, 10, 10, 10))); 

CHECK THE MIDDLE JTextArea as OUTPUT

+1

@ Daniel wszystko zależy, czy JTextArea jest lub nie jest umieszczone wewnątrz JScrollPane +1 – mKorbel

+1

+1, ale (przechyla głowę) co do zrzutu ekranu, dlaczego nie umieścić GUI przed zwykłym białym BG? NA PRZYKŁAD. Ctrl-t Gdy jestem w FF i otrzymuję biały obszar o ponad połowie wielkości ekranu. Aby uzyskać dalsze wskazówki, zobacz [Jak utworzyć zrzut ekranu?] (Http://meta.stackexchange.com/questions/99734/how-do-i-create-a-screenshot-to-illustrate-a-post) –

+1

@ mKorbel Przypomniałaś mi, że zwykle dodaję komponent do 'JPanel', a następnie ustawiam granicę do panelu. Działa bezbłędnie dla przewijanych paneli, przycisków, etykiet .. –