我想绘制
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