2011-11-29 61 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); 
    } 
}