2

我是 Swing 和 AWT 的初学者,我正在寻找使用 Netbeans 构建 GUI。我的 GUI 需要三个区域,我目前将其视为 JFrame 上的 JPanel。我需要一个“绘图”面板来监听鼠标输入并绘制 Java2D 形状。绘图面板将固定在左上角。其他两个区域是“属性”滚动窗格和“控制器”滚动窗格。控制器窗格将确定将通过按钮显示哪些绘制的元素,属性滚动窗格将显示有关在绘图窗格中单击的任何形状对象的详细信息(端点、颜色等)。

绘图区域的一个典型用例是,在绘图区域中的第一次单击将是形状的第一组坐标,即:一条线。该点击将被捕获为 point2d 对象。第二次单击将是第二个 point2D 对象,并且将在两者之间建立一条线。控制器区域将具有“圆形”“线”“椭圆”等按钮。根据单击的控制器按钮,仅在绘图区域中绘制该类型的形状。控制器和属性滚动窗格将不可移动,它们将被锁定并分别调整到 GUI 的底部和右侧。

作为初学者,我正在努力使用最好的组件。我一直在阅读 JDesktop 和 JInternalFrame,但似乎我并不真的需要这些。一个带有三个 JPanel 的简单 JFrame 就足够了,对吧?更具体地说,我认为我需要一个顶级 JFrame,一个用于绘图框的 JPanel 和两个 JScrollPanel。我需要绘图窗格上的鼠标侦听器来捕获每次单击的坐标,以及控制窗格中每个按钮的侦听器。我可以在 JPanel 上放置一个鼠标侦听器,并为其绘制 Java2D 形状,还是需要在 JPanel 内使用不同的(更好的?)容器来进行绘图?

4

3 回答 3

5

GraphPanel可能会给您一些构建此类应用程序的想法。

图形面板截图

于 2012-06-12T18:52:42.017 回答
4

JInternalFrames 通常有标题栏、离开框等。这里的示例似乎不适合您的模型。(除非您希望用户能够将面板移动到他们想要的任何地方,或者让它们消失?)所以我建议使用 JPanel 的更简单的 JFrame。

于 2012-06-12T18:44:53.330 回答
4

考虑两个 JSplitPanes 来分隔绘图区、控制区和属性区。JSplitPane 允许用户通过用鼠标单击并拖动分割线来调整区域的大小。

在此处输入图像描述

(使用 JFrame 作为顶级组件。)

作为初学者,如果您不需要调整大小和滚动,如果您制作一个不调整大小或滚动的应用程序,您将有更轻松的时间。

于 2012-06-12T19:00:24.917 回答