自定义绘制AWT组件

时间:2011-02-24 21:52:35

标签: java awt paint

我正在尝试使用java.awt.Component.getGraphics()方法在java.awt.Graphics.drawLine()上使用一系列线条对AWT组件进行渐变效果,但这种效果永远不会留下。有没有人知道如何将这些图形提交给组件,以便它们通过调整大小和其他调用重新绘制的事件来保持?

2 个答案:

答案 0 :(得分:2)

您是否仅限于AWT组件?如果不是,我建议您使用Swing组件(以“J”开头的组件。对于自定义绘画,您可以覆盖paintComponent方法,例如:

import java.awt.Graphics;

import javax.swing.JPanel;

public class CustomPaintingComponent extends JPanel
{
    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);    // This will clear everything...

        // ... now you can apply your custom painting, for example:
        g.drawLine(10, 10, getWidth() - 10, getHeight() - 10);  // A line from upper left to lower right corner
    }
}

答案 1 :(得分:0)

您需要覆盖组件的paint方法。否则,如果您只使用一个图形对象并一次写入行,则下次调用组件绘制方法时,它将重新绘制所有更改。