1

是否可以在 JTextField(或任何其他 Swing 控件)上绘制对角线,而无需在文本框上放置一个面板?

4

1 回答 1

5

创建一个自定义 JTextField 并覆盖 paint() 方法。就像是:

public void paint(Graphics g)
{
    super.paint(g);
    //  do custom painting here
}

注意:通常自定义绘画是通过覆盖组件的 paintComponent(..) 方法来完成的。所以你也可以这样做:

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    //  do custom painting here
}

结果将是相同的,因为 JTextField 没有添加任何子组件。但是我建议使用paint(...),因为如果您想在支持子组件的组件(如JPanel)上绘制对角线,这种方法会起作用。请通过阅读自定义绘画的 Swing 教程中的部分,确保您了解这两种方法之间的区别。

或者另一种选择是创建一个自定义荧光笔,在所选文本上绘制对角线。RectanglePainter可以让您开始使用这种方法。

因此,根据您的要求,您有几个不同的选择。

于 2009-12-08T18:34:52.127 回答