Java Graphics Class Confusion

时间:2014-04-01 19:22:53

标签: java graphics

我很抱歉,如果这听起来有些模糊,但我很难清楚地说明Java的图形类中究竟是什么让我感到困惑。

我想要做的只是绘制一系列彩色字符串。我有一个解析和排序字符串的方法,但我无法弄清楚如何说服图形在他们排队后实际显示该死的东西。

我知道有一个Graphics方法drawString(),显然是为了完成这个任务而设计的,但我无处可找到如何实现它的合理解释。它似乎需要一个Graphics对象来操作,但我看不出我是如何定义这样一个对象的。看起来,Java不允许初始化Graphics对象,而且我找不到任何明确的解释,为什么会这样或如何解决它。

我已经阅读了很多教程,其中使用了一个非常基本的paint()方法来演示drawString()的功能,但是我遇到的每个人都使用了字符串硬编码并且附带的图形中包含了方法上课,不符合我的目的。我似乎甚至无法调用paint()方法,至少不是我熟悉的任何方式,除了g之外,我一直无法修改参数我想打印的变量字符串

我非常感谢任何有关如何实现Graphics对象的说明。我花了最后两个小时来解决这个问题,并且很想把它放在我身后。

我在setColor行获得了nullpointerexception。我在代码的前面已经将蓝色和红色定义为颜色。

Canvas c = new Canvas();
Graphics g = c.getGraphics();
if (bool1) g.setColor(blue);
else g.setColor(red);
g.drawString(tval, x, y);

1 个答案:

答案 0 :(得分:3)

看看Performing Custom Painting

Graphics是一个抽象概念,代表某种输出,屏幕,图像,打印机。

为了呈现内容,您必须首先获得预期输出的Graphics上下文的实例。

对于屏幕和打印机,这是由系统提供的,因此您需要链接到各种油漆链。

对于屏幕,最简单的是覆盖从paintComponent延伸的组件的JComponent(通常为JPanel