我正在使用Netbeans GUI,我想在jTextField的开头添加3个像素的空间:

我已经在GUI中尝试了setMargin,setInset,但它没有改变任何东西.
我有另一个问题,为什么右下边框不圆?这是我的代码:
Border roundedBorder = new LineBorder(new Color(210,210,210), 1, true);
researchTextField.setBorder(roundedBorder);
Run Code Online (Sandbox Code Playgroud)
非常感谢你,
问候
在这个自定义边框类中,我定义了一个RoundRectangle2D形状.此对象用于绘制边框.不幸的是,由于之前调用的paint方法,将剪辑设置为形状没有效果; 即使我发出一个.因此,组件将在其边界外部绘制,这是可以理解的不合需要的.JComponentpaintComponentpaintBorderGraphicsRoundRectangle2Drepaint
所以,我想知道:如何让组件专门在自定义边框内绘制?
我考虑的一种方法是Border在paintComponent方法中获取组件的对象.然后将此对象转换为适当的类,其中我定义将影响剪辑的参数.但这似乎不是一个"声音"设计.
编辑 -
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.border.AbstractBorder;
class JRoundedCornerBorder extends AbstractBorder
{
private static final long serialVersionUID = 7644739936531926341L;
private static final int THICKNESS = 2;
JRoundedCornerBorder()
{
super();
}
@Override
public void paintBorder(Component c, Graphics g, int x, …Run Code Online (Sandbox Code Playgroud)