- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前可以通过添加扩展 JComponent 的组件(在其中修改 PaintComponent 方法)来在 Java 中绘制矩形、椭圆形和线条:
public class myComponent extends JComponent
{
public void paintComponent(Graphics g)
{
/* do simple draw stuff */
}
}
我还知道如何让我的类扩展 JApplet 或 JPanel,然后在绘制方法中进行绘制:
public class myClass extends JPanel
{
public void paint(Graphics g)
{
/* do simple draw stuff */
}
}
但是,这两种方法都不允许我向它们传递参数。在多帧动画 Sprite 的情况下,我可以想象有一些外部变量,它可以读取它来确定帧编号,然后根据该帧编号在内部仅绘制适当的“ Sprite ”内容,但我更希望能够直接将帧号传递给它。不幸的是,我不仅不知道它是从哪里调用的,我也不知道它需要作为输入的 Graphics g 在哪里。
可能有更好的方法来完成我想要的事情,直接与绘制例程通信,告诉它在我需要的时候只绘制我想要的东西,但我不知道如何实现这一点。
如果这种方法可行,该怎么做?如果最好使用现有的paint或paintComponent方法,我怎样才能最好地向它们传递附加信息?
<小时/>显然我问的不清楚。我希望有一个组件或其他实体有自己的paintComponent或paint方法,在其内部,基于传递给它的frameNumber参数,或者显然更可能的是,它可以基于类属性,例如frameNumber访问时,该方法确定要绘制 Sprite 的哪一帧。
但重要的是,我希望能够在帧编号发生变化时重新调用paint或paintComponent来重绘 Sprite 。我最大的困惑在于不知道如何重新调用该方法,据我所知,只有在调整框架大小或以其他方式重新绘制框架时才会调用该方法。
最佳答案
首先,不要重写paint
,使用paintComponent
。
其次,您需要定义某种模型来记录所有图形对象的状态。当调用 paintComponent
时,您需要渲染该状态。您不应尝试将参数传递给绘制方法,而应该拥有一个允许绘制方法访问模型(即 getModel
)的方法,该模型在较早的时间传递给组件。
然后更新引擎将更新模型,组件将绘制该模型
关于java - Jr Java-er 希望将参数传递给 Paint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582734/
我正在使用 C# (asp .net),并且我有一个文本框,它接受在数据库上执行查询的名称条目。 我想使用 IN 子句获取所有可能的值,但在我的 C# 页面中我得到 1 个字符串 例如 'john s
我正在使用 JasperReports 插件生成复杂的报告。它适用于 pdf 文件,但要求是在下载 pdf 之前以 html 格式显示准确的 pdf 报告预览。 我只是想使用 "inline=true
我需要实现自定义反序列化器以正确地将 JSON 解析为 Java 对象。如 documentation 中所述我需要用我的自定义替换默认 JSONReader: JSON j = JSON.std.w
我正在使用 Jackson-jr 来读取我的 JSON 文件。其中之一有点复杂: [ {"test-1":["a","b","c","d"]}, {"test-2":["b","j","d"]},
我想将报 TableView 从纵向更改为横向。 我用过这个方法: jasperPrint.setOrientation(OrientationEnum.LANDSCAPE); 但是它不起作用。 最佳
我想在计划的持续时间对生成的报告(PDF 文件)执行删除。 我已经完成了调度程序部分。唯一要做的就是制作一个方法,该方法具有删除在这些时间之间生成的一堆报告的逻辑。 是否有可用的 JasperRepo
MIPS 跳转寄存器 (JR) 指令经常出现在 C++ 代码的二进制文件中。那么,C++ 中的哪些功能使用了 JR 指令,为什么要使用这些指令? 最佳答案 分支指令只能用于目标地址在编译时已知并且在当
我目前可以通过添加扩展 JComponent 的组件(在其中修改 PaintComponent 方法)来在 Java 中绘制矩形、椭圆形和线条: public class myComponent ex
我有一个 jasper 报告列表控件,我从后端获取动态值。我需要在两列中显示列表值。 我该怎么做? 这是我的jr:list代码
我正在尝试使用 jackson-jr 作为 jackson-databind 的轻量级替代品。我的目标是解析 JSON 字符串,并在遇到重复键时让解析器失败。据我了解该库,以下内容可能会引发异常: S
我正在做一个 Controller ,以便在用户需要时显示 JR 报告。我正在使用 Maven + Eclipse + JasperReports API。 该项目编译良好,但是当我尝试访问我的 Co
我已经写了一个实现归并排序算法的 MIPS 子程序(代码在帖子的最后)。它接收指向数组的指针及其大小。排序它,不要返回任何东西。 我一直在调试它,修复了一些错误,并且由于子例程在达到基本情况(大小为
我是 jasper 报告的新手,我不知道如何将 JRBeanCollectionDataSource 仅传递给子报表,将 JREmptyDataSource 传递给 master ireport。 我
我尝试在 Linux 中显示 JR 报告。我刚才出错了,生产大约在几个小时后。首先它在 Windows 上运行良好。我的应用服务器是GlassFish 2.1,操作系统是RedHat,框架是Strut
所以我目前正在开发我的第一个 meteor 应用程序,这将是一个很好的移动应用程序。由于它只能在移动设备上运行,我想使用 Junior Framework实现经典应用程序 + 幻灯片切换的外观和感觉。
我正在创建一个 jasper 报告,其中包含标题和元素列表。我通过 JRBeanCollectionDataSource 将自定义对象的数组列表传递给 jasper 报告我已使用列表组件。但它总是返回
我正在编写一些自修改代码,我想从 MIPS 调用 C 函数(将其称为 foo)。 我已将 foo、&foo 的 mem add 加载到 $t1 中。现在我jr/jalr $t1。 C 会将 $ra 设
我是 MAC 用户,我购买这款手机专门用于应用测试。到目前为止,设置它的说明(提供的链接)只能让我了解,因为在我应该点击以打开开发人员选项的设置中,这个特定手机上没有明确称为“内部版本号”的选择选项。
我必须做这样的事情:对于名字字段,如果该字段由两个或多个单词组成,如果最后一个单词包含以下之一,则将最后一个单词删除到后缀字段中: II, III, IV, V, VI, VII, VIII, ESQ
我是一名优秀的程序员,十分优秀!