如果这听起来有点含糊,我很抱歉,但我很难准确地阐明 Java 的 Graphics 类中让我感到困惑的内容。
我想做的只是绘制一系列彩色字符串。我有一种方法来解析和排序字符串,但我不知道如何说服图形在排列好后实际显示该死的东西。
我知道有一个图形方法drawString(),显然是为了完成这个任务而设计的,但是我找不到如何实现它的合理解释。它似乎需要一个 Graphics 对象来操作,但我不知道如何定义这样一个对象。 Java 似乎不允许初始化 Graphics 对象,而且我找不到任何明确的解释来解释为什么会这样或如何解决它。
我读过很多教程,其中使用一个非常基本的paint()方法来演示drawString()的功能,但是我遇到的每个教程都硬编码了字符串并且该方法包含在Graphics附属类中,这不符合我的目的。我似乎甚至无法调用 Paint() 方法,至少不能以我熟悉的任何方式调用,并且我无法修改参数以接受除 g 之外的我希望打印的变量字符串。
如果您能澄清如何实现 Graphics 对象,我将非常感激。在过去的两个小时里我一直在努力解决这个问题,并且很想把它抛在脑后。
我在 setColor 行遇到空指针异常。我已在代码的前面部分将蓝色和红色定义为颜色。
Canvas c = new Canvas();
Graphics g = c.getGraphics();
if (bool1) g.setColor(blue);
else g.setColor(red);
g.drawString(tval, x, y);
最佳答案
看看Performing Custom Painting 。
图形
是一个抽象概念,代表某种输出、屏幕、图像、打印机。
为了呈现内容,您必须首先获取预期输出的Graphics
上下文的实例。
对于屏幕和打印机,这是由系统提供的,因此您需要链接到各种绘画链。
对于屏幕,最简单的方法是重写从 JComponent
扩展的组件的 paintComponent
(通常是 JPanel
)
关于Java 图形类困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795053/