我有一个JTextField,我想要setMargin.但是当我设置任何边框时,它都不能正常工作.它的保证金功能不起作用.
这是我的代码;
这是我的代码;
import java.awt.Color; import java.awt.Insets; import java.io.IOException; import javax.swing.BorderFactory; import javax.swing.JOptionPane; import javax.swing.JTextField; public class ImageField { public static void main(String[] args) throws IOException { JTextField textField = new JTextField(); textField.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY)); textField.setMargin(new Insets(0,20,0)); JOptionPane.showMessageDialog(null,textField,"",JOptionPane.PLAIN_MESSAGE); } }
如果我告诉这一行,它是有效的
//textField.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
解决方法
保证金在Border方面存在一些问题,要解决此问题,您可以尝试使用
CompoundBorder将EmptyBorder设置为内边框,并将所需边框(在您的情况下为lineBorder)作为外边框.
这样的事情应该有效:
Border line = BorderFactory.createLineBorder(Color.DARK_GRAY); Border empty = new EmptyBorder(0,0); CompoundBorder border = new CompoundBorder(line,empty); textField.setBorder(border);