2011-11-29 45 views
5

は私のJTextFieldの先頭にスペースの3つのピクセルを追加したいと思います:のJava SwingのJTextFieldのインセット

enter image description here

私はGUIでsetMargin、setInsetでtryiedてきたが、それは何も変わらない。

もう1つ質問がありますが、なぜ右下の境界線が丸くならないのですか?ここに私のコードは次のとおりです。

Border roundedBorder = new LineBorder(new Color(210,210,210), 1, true); 
researchTextField.setBorder(roundedBorder); 

setMargin(...)を使用して

よろしく

答えて

12

が動作するはずです、どうもありがとうございました。

しかし、あなたもボーダーを使用している場合は、問題がある可能性があります。

CompoundBorderを使用してください。ここで、内側の境界線はEmptyBorder()で、外側の境界線は他の境界線です。たとえば、次のように

Border rounded = new LineBorder(new Color(210,210,210), 1, true); 
Border empty = new EmptyBorder(0, 3, 0, 0); 
textField.setBorder(rounded); 
Border border = new CompoundBorder(rounded, empty); 

右下の境界が丸められていない理由?

あなたのボトム/右が丸められない理由はわかりません。 XP上でMetal LAFを使用すると、右端(上端と下端)が丸く表示されますが、左端は丸められません。 2つ以上の境界線のサイズを使用すると、すべての角が均等に丸く表示されます。

+0

をあなたは私よりも高速だ:1+ :) –

3

setMargin(Inset myInset)は私のために働いた:

import java.awt.Insets; 
import javax.swing.*; 

public class TextFieldFun { 
    public static void main(String[] args) { 
     JTextField textfield = new JTextField(20); 
     JPanel panel = new JPanel(); 
     panel.add(textfield); 

     textfield.setMargin(new Insets(0, 10, 0, 0)); 

     JOptionPane.showMessageDialog(null, panel); 
    } 
} 
関連する問題