我正在尝试使用swing制作一个RPG(是的,这是愚蠢的我同意,但我这样做是为了学习而不是实际的工作产品)。目前我正在处理每个角色的统计数据。
我有一个JPanel,我想画一条线。
我的目的是要有类似的东西
左侧是一个JPanel,它有两个组件,表1和JLabel。 右边也是JPanel,它有自己的元素,但这是另一个故事。
我的问题是,我想创建一个只有图像的jpanel,该图像将是两条相对于表格中所选元素的角落。
但不幸的是,我不知道如何在JLabel上绘制自定义图像。任何人都可以建议一种在JLabel上绘制自己的线条和一切的方法吗?我看了很多问题,但是他们展示了如何将已经创建的图像绘制到JLabel上,但是我会自己绘制自己的东西(只有两行)。
答案 0 :(得分:8)
有人可以建议一种在JLabel上绘制我自己的线条和所有东西的方法吗?
绘制到Graphics2D
的{{1}}。在标签中显示图像(在BufferedImage
中)。
我正在尝试使用swing制作一个RPG(是的,这是愚蠢的我同意,但我这样做是为了学习..
我认为这根本不是傻瓜。如果选择Swing或AWT,Swing组件是唯一的方法。工具包不仅更丰富(向我展示AWT等同于ImageIcon
,ImageIcon
,JTree
,..),但默认情况下具有双缓冲,并且直接构建于 AWT。我强调最后一部分是因为游戏经常出现这种情况,我们会覆盖油漆并“去追求它” - 绘制每个像素。
一旦完成,它通常是'所有AWT'。我发布的示例不使用AWT组件,但都使用JTable
,有些使用BufferedImage
或GlyphVector
,AffineTransform
(当我感到懒惰时)或{{1 (对于那些精彩的渲染提示..)。
但是更进一步,“Swing”启动画面或全屏窗口也是纯粹的AWT。
对于可点击/可编辑的组件,请使用Swing。对于自定义渲染以及诸如splash或FSW之类的极端情况,请访问AWT类。