2012-04-23 4 views
5

Как говорится в названии, я просто пытаюсь установить поля (предоставить некоторые дополнения) в TextArea с помощью набора LineBorder. Без настройки границы, .setMargins отлично работает. Вот конкретный кусок кода.Java Swing - установочные поля на TextArea с линейной границей

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); 

Я попытался каждый из них:

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

но ничего не влияет на поля после того, как я применяю границу, отступы всегда 0. Любые идеи, как установить отступы на TEXTAREA с границы?

+2

Ключ для 'края JTextArea' является' "TextArea.margin «'. – trashgod

ответ

26

Что делать, если вы пытаетесь добавить CompoundBorder, будет ли это делать, это даст вам почти то же самое

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 все зависит, если JTextArea находится или не размещается внутри JScrollPane +1 – mKorbel

+1

+1, но (наклоняет голову) относительно скриншота, почему бы не поставить GUI перед простым белым BG? НАПРИМЕР. Ctrl-t Пока я нахожусь в FF и получаю пустое пространство размером более половины экрана. Дополнительные советы см. В разделе [Как создать скриншоты?] (Http://meta.stackexchange.com/questions/99734/how-do-i-create-a-screenshot-to-illustrate-a-post) –

+1

@ mKorbel Вы напомнили мне, что я обычно добавляю компонент в «JPanel», а затем устанавливаю границу на панель. Он работает безупречно для scroll-panes, кнопок, меток. –