我一直在尝试在我用 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/