首页 / JAVA / Java:如何在画布中绘图?
Java:如何在画布中绘图?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java:如何在画布中绘图?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1413字,纯文字阅读大概需要3分钟。
内容图文
![Java:如何在画布中绘图?](/upload/InfoBanner/zyjiaocheng/727/468a9310fbaf44afb2d21cbe319a73fa.jpg)
我是Java的新手,我想做一个简单的游戏,其中有一个简单的网格中的正方形(蛇和迷宫之间的东西).方块的数量不会改变,只有它们的颜色.
我已经编写了游戏所需的对象.现在我想要显示游戏.
我知道如何创建一个JFrame,一个JPanel和一个JButton,我将需要它,但我不明白如何在画布中绘制.
我做了一个测试课:
import javax.swing.*;
import java.awt.*;
public class Test extends Canvas {
public static void main (String[] arg) {
JFrame f=new JFrame();
f.setTitle("Title");
f.setSize(400,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
JPanel pan=new JPanel(new FlowLayout());
pan.add(new JButton("hey"));
Test canvas=new Test();
Graphics g=canvas.getGraphics();
canvas.paint(g);
pan.add(canvas);
f.setContentPane(pan);
}
public Test() {
setBackground (Color.green);
setSize(300,300);
setVisible(true);
}
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.RED);
g.fillRect(10,10,80,80);
g.setColor(Color.BLUE);
g.fillRect(150,50,80,80);
g.setColor(c);
}
}
当我运行它时,会创建一个窗口,其中包含正确的标题,大小和按钮,但没有任何其他内容(没有绿色背景,没有红色或蓝色矩形),并且检测到错误:
Exception in thread "main" java.lang.NullPointerException
at Test.paint(Test.java:25)
at Test.main(Test.java:15)
我究竟做错了什么 ?是否有更好的方法来绘制这些方块?
谢谢 !
解决方法:
评论这两行
//Graphics g=canvas.getGraphics();
//canvas.paint(g);
并按如下方式更改绘制方法.
@Override
public void paint(Graphics g) {
super.paint(g);
休息很好.希望它能帮助你进步.
内容总结
以上是互联网集市为您收集整理的Java:如何在画布中绘图?全部内容,希望文章能够帮你解决Java:如何在画布中绘图?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。