java - 在 JPanel 中实现图形

标签 java swing graphics netbeans

我一直在尝试在我用 Netbeans 制作的 GUI 应用程序中实现图形。我已经使用 GUI 编辑器完成了布局(按钮、文本框等),到目前为止一切正常。基本上我想要做的是在我的 JFrame 的下半部分生成一些图形(线条等),并将复选框、按钮等留在我的 JFrame 的上半部分。

从我看到的例子来看,一般的方法是创建一个类来扩展 JPanel 并包含图形代码来创建线条和其他各种形状。我已经能够独立于 GUI 编辑器实现它,但该应用程序仅由占据整个 JFrame 的 JPanel 组成。我在 GUI 编辑器中使用的不同方法要么生成了图形但屏蔽了 JFrame 中的所有其他内容(即使是一条细线),要么根本不做任何事情。

理想情况下,我希望能够将任意大小的 JPanel 放置在我的 JFrame 上的任意位置,并创建包含在面板中的图形。我还希望我创建的图形的坐标被引用到 JPanel 而不是 JFrame(因此坐标 0,0 是我的 JPanel 的左上角,无论我决定将其放置在何处。)

有没有一种直接的方法可以做到这一点?

(示例代码将不胜感激)

最佳答案

首先,您必须提供一个扩展 JPanel 的类,然后覆盖 paintComponent 方法以提供您自定义的图形绘制。

然后在JFrame上你需要使用合适的Layout Manager在JFrame上放置多个组件。例如,您可以使用 GridLayout 将 Jframe 分成相等的两半。顶部的可以包含带有按钮和控件的普通 JPanel,下面的可以是带有自定义图形的自定义 JPanel。

您在 paintComponent 中使用的坐标将仅引用底部的 JPanel。

当然,如果您需要更具体的布局选项,您可以使用比 GridLayout 更高级的布局管理器。

  • 这也可以在 netbeans ide 中通过右键单击组件并在自动调整大小选项中选择“垂直”和/或“水平”来完成。

关于java - 在 JPanel 中实现图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839554/

相关文章:

java - 应用程序在 1 小时后失去当前 Activity

java - 面板不允许添加?

java - 在 Java 应用程序 (Swing) 中刷新/重新加载图像

javascript - 如何检测一个元素位于另一个元素之上

r - VennDiagram 未生成比例图

graphics - 如何在 Windows 10 上更新 CUDA 驱动程序 nvidia?

java - 使用泛型 Java 对数组/比较器进行二分搜索

java - Hibernate LazyInitializationException on find() 与 EAGER @ElementCollection

java - Gradle 不会复制测试资源来构建

java - 如何让我的自定义排序颜色在我的 jframe 中工作?