【问题标题】:Drawing diagonal lines over a textbox in Java在Java中的文本框上绘制对角线
【发布时间】:2009-12-08 18:32:15
【问题描述】:

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

【问题讨论】:

    标签: java jtextfield


    【解决方案1】:

    创建一个自定义 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)上绘制对角线,这种方法会起作用。请阅读 Custom Painting 上的 Swing 教程部分,确保您了解这两种方法之间的区别。

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 2013-08-06
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 2020-01-18
      相关资源
      最近更新 更多