2011-11-29 40 views
5

estoy trabajando con NetBeans GUI y me gustaría añadir 3 píxeles de espacio en el comienzo de mi JTextField:Java Swing de JTextField inserción

enter image description here

He tryied con setMargin, setInset en la GUI pero no cambia nada

Tengo otra pregunta, ¿por qué el borde inferior derecho no está redondeado? aquí está mi código:

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

muchas gracias,

Saludos

Respuesta

12

Uso setMargin(...) debería funcionar.

Sin embargo, si también está utilizando un borde, ese puede ser el problema.

Intente utilizar un CompoundBorder donde el borde interior es un EmptyBorder() y el borde exterior es su otro borde. Por ejemplo:

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

por qué el borde inferior derecho no es redondeado?

No estoy seguro de por qué su parte inferior/derecha no está redondeada. Al usar Metal LAF en XP, los bordes derechos (arriba y abajo) aparecen redondeados pero los bordes izquierdos no se redondean. Cuando uso un tamaño de borde de 2 o más, todas las esquinas aparecen igualmente redondeadas.

+0

Eres más rápido que yo: 1+ :) –

3

setMargin(Inset myInset) trabajó para mí:

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