gpt4 book ai didi

Java Netbeans 覆盖 JPanel 中的 paint() 方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:00 27 4
gpt4 key购买 nike

大家好,我是新手程序员
我想使用 Netbeans IDE 开发 Java 程序的 GUI

使用 Netbeans GUI 生成器,
首先,我创建一个新的 JFrame 窗体
然后,我从工具栏/调色板添加一个 JPanel

问题是,
如何覆盖新创建的 JPanelpaint() 函数?

我想在JPanel中绘制一个背景和一些球体,
我尝试使用 getGraphics() 函数进行绘制,它完成了工作,但是当我调用 repaint()

时它不再绘制了

我是否应该创建一个新类来实现 JPanelJComponent,而不是使用我自定义的 paint() 函数?
(如果是这样,我该如何使用 Netbeans GUI Builder 来实现?)

类似问题:

how to use jpanel with paint (or repaint)

(但它不使用 Netbeans GUI Builder)

最佳答案

通常的做法是创建您自己的 JPanel 子类(例如 MyJPanel)并在那里实现 paint() 方法。

实现该类后,切换到表单,选择面板,然后使用面板属性的“代码”选项卡中的“自定义创建代码”来创建 MyJPanel 的实例JPanel

Custom creation code

这有一个小缺点,即每次您想要访问在 MyJPanel 中定义但不在 中定义的方法时,都需要将实例变量转换为 MyJPanel >J面板。如果您永远不需要这样做,这是最快的方法。

如果您想访问面板类中的其他方法(无需每次都转换实例变量),删除现有的 JPanel 并使用新类添加“Bean”会更容易。

这是通过单击调色板中的“选择 Bean”按钮完成的:

Choose bean

单击确定后,您可以将面板放置在表单上,​​NetBeans 将创建类型为 MyJPanel(而不是 JPane)的实例变量,您可以访问该类中定义的所有方法。 请注意,必须先编译该类,然后才能以这种方式添加它!

关于Java Netbeans 覆盖 JPanel 中的 paint() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com