2011-11-29 63 views
5

我与Netbeans的GUI工作,我想在我的JTextField的开头添加的空间3个像素:的Java Swing JTextField中的插图

enter image description here

我已经tryied与setMargin,setInset在GUI但它不会改变任何东西。

我还有一个问题,为什么右下边框不是圆整的?这里是我的代码:

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

非常感谢你,

问候

回答

12

使用setMargin(...)应该工作。

但是,如果您还使用边框则可能是问题所在。

尝试使用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); 
    } 
}