我想绘制
Java的Canvas,但是不能让它工作,因为我不知道我在做什么.这是我的简单代码:
import javax.swing.JFrame; import java.awt.Canvas; import java.awt.Graphics; import java.awt.Color; public class Program { public static void main(String[] args) { JFrame frmMain = new JFrame(); frmMain.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); frmMain.setSize(400,400); Canvas cnvs = new Canvas(); cnvs.setSize(400,400); frmMain.add(cnvs); frmMain.setVisible(true); Graphics g = cnvs.getGraphics(); g.setColor(new Color(255,0)); g.drawString("Hello",200,200); } }
没有任何东西出现在窗口上.
我错了认为画布是纸,图形是我的铅笔?这是怎么运作的?
解决方法
建议:
>不要使用画布,因为您不应该不必要地混合AWT与Swing组件.
>而是使用JPanel或JComponent.
>不要通过在组件上调用getGraphics()来获取Graphics对象,因为获取的Graphics对象将是暂时的.
>绘制JPanel的paintComponent()方法.
>所有这些都很容易地在几个教程中解释.为什么不先试试看这些东西呢?
主要教程链接:
>基础教程:Lesson: Performing Custom Painting
>更多高级信息:Painting in AWT and Swing