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

最佳答案

创建一个自定义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可以帮助您开始使用这种方法。

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

关于java - 在Java中的文本框上绘制对角线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1868947/

10-10 02:45