2012-04-23 31 views
5

Başlıktan da anlaşılacağı gibi, bir TextArea üzerinde bir sınır çizgisi (bir miktar dolgu sağlayın) bir LineBorder kümesiyle ayarlamaya çalışıyorum. Sınırı ayarlamadan, .setMargins iyi çalışır. İşte özel kod parçası.Java Swing - Satır Sınırlı TextArea kenar boşluklarını ayarlama

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

Ben bunların her biri denedim:

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

ama sınırı uyguladıktan sonra hiçbir şey marjları etkiler, dolgu ile textArea üzerine dolgu nasıl ayarlanacağı hep 0. Herhangi bir fikir olduğunu sınır?

+2

' "TextArea.margin size hemen hemen aynı şeyi verecektir olmaz Ne "'. – trashgod

cevap

26

Bir CompoundBorder eklemeyi denerseniz, bu do, bu

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

`JTextArea` marjı için anahtardır
+1

@Daniel her şey JTextArea'nın JScrollPane +1 – mKorbel

+1

+1 içine yerleştirilip yerleştirilmediğine, ancak ekran görüntüsüne göre (başını eğerek), GUI'yi düz beyaz BG'nin önüne yerleştirmemesine bağlıdır. ÖRNEĞİN. Ctrl-t FF'deyken ve yarı ekranın üzerinde beyaz bir alan olsun. Daha fazla ipucu için, [Ekran görüntülerini nasıl oluştururum?] (Http://meta.stackexchange.com/questions/99734/how-do-i-create-a-screenshot-to-illustrate-a-post) –

+1

@ mKorbel Bana genellikle bileşeni JPanel'e eklediğimi ve sonra kenarlığı panele ayarladığımı hatırlattın. Kaydırma bölmeleri, düğmeler, etiketler için kusursuz çalışıyor .. –