我正在尝试使用java.awt.Component.getGraphics()
方法在java.awt.Graphics.drawLine()
上使用一系列线条对AWT组件进行渐变效果,但这种效果永远不会留下。有没有人知道如何将这些图形提交给组件,以便它们通过调整大小和其他调用重新绘制的事件来保持?
答案 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方法。否则,如果您只使用一个图形对象并一次写入行,则下次调用组件绘制方法时,它将重新绘制所有更改。