Java Swing JTextField插入文本

6

我正在使用Netbeans GUI,并且希望在我的jTextField开头添加3像素的空间:

enter image description here

我已经在GUI中尝试了setMargin、setInset,但是没有任何变化。

我还有另一个问题,为什么右下角的边框不是圆形的?这是我的代码:

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

非常感谢您,敬礼!
此致敬礼
2个回答

11

使用 setMargin(...) 应该可以解决问题。

不过,如果您同时正在使用边框,则可能会出现问题。

尝试使用 CompoundBorder,其中内部边框是 EmptyBorder(),外部边框是您的其他边框。例如:

Border rounded = new LineBorder(new Color(210,210,210), 1, true);
Border empty = new EmptyBorder(0, 3, 0, 0);
Border border = new CompoundBorder(rounded, empty);
textField.setBorder(border);

阅读 Swing 教程中的如何使用边框一节,了解更多信息和示例。

为什么底部右侧的边框没有圆角?

我不确定为什么您的底部/右侧边框没有圆角。在 XP 上使用 Metal LAF 时,右侧边框(上下)似乎是圆角的,但左侧边框不是圆角的。当我使用 2 或更大的边框大小时,所有角落都呈现出相同的圆角效果。


4

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接