Java Swing JtextField 插图
Posted
技术标签:
【中文标题】Java Swing JtextField 插图【英文标题】:Java Swing JtextField inset 【发布时间】:2012-01-08 11:30:54 【问题描述】:我正在使用 Netbeans GUI,我想在我的 jTextField 开头添加 3 个像素的空间:
我已经在 GUI 中尝试使用 setMargin、setInset,但它并没有改变任何东西。
我还有一个问题,为什么右下边框不圆?这是我的代码:
Border roundedBorder = new LineBorder(new Color(210,210,210), 1, true);
researchTextField.setBorder(roundedBorder);
非常感谢,
问候
【问题讨论】:
【参考方案1】:使用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);
阅读 How to Use Borders 上的 Swing 教程部分,了解更多信息和示例。
为什么右下边框不圆?
我不确定为什么您的底部/右侧没有圆角。在 XP 上使用 Metal LAF 时,右边框(顶部和底部)看起来是圆形的,但左边框不是圆形的。当我使用 2 或更大的边框大小时,所有角都显得同样圆润。
【讨论】:
【参考方案2】: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);
【讨论】:
以上是关于Java Swing JtextField 插图的主要内容,如果未能解决你的问题,请参考以下文章
java.swing JtextField 中怎么限制只能输入数字
java swing JTextField设置PlaceHolder [重复]
java swing JTextField设置PlaceHolder [重复]
Java Swing:JTextField 没有按预期失去焦点