好的,我有以下 JTextField 类。它创建一个圆形 JTextField。现在我想为我的 JPasswordField 使用相同的设置,因为我认为 JPasswordField 继承自 JTextField 我可以执行以下操作:JPasswordField new_field = new RoundField(SOME Parameters);
但这是一场大灾难。有什么方法可以使 JPasswordField 舍入而不重复代码?
public class RoundField extends JTextField {
public RoundField(String text, int x, int y, int width, int height) {
setText(text);
setBounds(x, y, width, height);
setForeground(Color.GRAY);
setHorizontalAlignment(JTextField.CENTER);
setOpaque(false);
setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 4));
}
protected void paintComponent(Graphics g) {
g.setColor(getBackground());
g.fillRoundRect(0, 0, getWidth(), getHeight(), 8, 8);
super.paintComponent(g);
}
}
PS:如有必要,可以将 setText 移出构造函数。