2011-11-29 17 views
5

sto lavorando con Netbeans GUI e vorrei aggiungere 3 pixel di spazio all'inizio della mia JTextField:Java Swing JTextField inserto

enter image description here

ho tryied con setMargin, setInset nella GUI, ma non cambia nulla.

Ho un'altra domanda, perché il bordo inferiore destro non è arrotondato? qui è il mio codice:

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

vi ringrazio molto,

saluti

risposta

12

Uso setMargin(...) dovrebbe funzionare.

Tuttavia, se si utilizza anche un bordo, questo potrebbe essere il problema.

Provare a utilizzare uno CompoundBorder dove il bordo interno è un EmptyBorder() e il bordo esterno è l'altro bordo. Per esempio:

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

il motivo per cui il bordo in basso a destra non viene arrotondato?

Non sono sicuro del motivo per cui la parte inferiore/destra non è arrotondata. Usando Metal LAF su XP i bordi giusti (in alto e in basso) appaiono arrotondati ma i bordi di sinistra non sono arrotondati. Quando uso una dimensione del bordo di 2 o più tutti gli angoli appaiono ugualmente arrotondati.

+0

Sei più veloce di me: 1+ :) –

3

setMargin(Inset myInset) ha lavorato per me:

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