2011-11-29 30 views
5

Pracuję z Netbeans GUI i chciałabym dodać 3 piksele przestrzeni na początku moim JTextField:Java Swing JTextField wstawka

enter image description here

Mam tryied z setMargin, setInset w GUI, ale nic nie zmienia.

Mam inne pytanie, dlaczego prawy dolny róg nie jest zaokrąglony? tutaj jest mój kod:

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

bardzo dziękuję,

Pozdrowienia

Odpowiedz

12

Korzystanie setMargin(...) powinno działać.

Jednakże, jeśli używasz również obramowania, może to być problem.

Spróbuj użyć CompoundBorder, gdzie wewnętrzną ramką jest EmptyBorder(), a zewnętrzna granica to twoja druga granica. Na przykład:

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

dlaczego dolny prawy granica nie jest zaokrąglana?

Nie jestem pewien, dlaczego Twój dolny/prawy nie jest zaokrąglony. Używając Metal LAF na XP, prawa krawędzie (góra i dół) są zaokrąglone, ale lewe krawędzie nie są zaokrąglone. Kiedy używam obramowania o wielkości 2 lub więcej, wszystkie rogi są równie zaokrąglone.

+0

Jesteś szybszy ode mnie: 1+ :) –

3

setMargin(Inset myInset) pracował dla mnie:

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