Java Swing JtextField вставка - PullRequest
       14

Java Swing JtextField вставка

5 голосов
/ 29 ноября 2011

Я работаю с Netbeans GUI и хотел бы добавить 3 пикселя в начале моего jTextField:

enter image description here

Я пробовал использовать setMargin, setInset в графическом интерфейсе, но это ничего не меняет.

У меня другой вопрос, почему нижняя правая граница не округлена? вот мой код:

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

Большое спасибо,

Привет

Ответы [ 2 ]

12 голосов
/ 29 ноября 2011

Использование 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);

почему нижняя правая граница не округлена?

Я не уверен, почему ваша нижняя / правая не округлена.При использовании Metal LAF в XP правые границы (сверху и снизу) выглядят закругленными, но левые границы не округляются.Когда я использую границу размером 2 или более, все углы выглядят одинаково закругленными.

4 голосов
/ 29 ноября 2011

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