Java 图形类困惑

标签 java graphics

如果这听起来有点含糊,我很抱歉,但我很难准确地阐明 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/

相关文章:

java - Java中轮流使用按钮

haskell - 试图让 Gloss Graphics 库工作

c# - 直接显卡访问

java - Hashmap jdk1.7无锁get()和同步put()的线程安全

java - 面向对象的Java。尝试实现抽象方法时出错

matlab - 连接断开的轮廓边

c# - 如何使用图形库 C# 在图像上绘制小图像?

graphics - d3.js:手动定义强制布局的节点和链接时,“未定义 “Cannot read property '权重”

python - Java Spring Boot 与 Python FastApi : Threads

java - 使用java mongo驱动程序在java中实现mongodb查询