-2

图像示例

我想创建一个数据库设计器,所以我可能还需要一种方法来让 UI 用于在两个表之间建立关系。工具:JAVA摇摆

4

1 回答 1

0

你的问题的简短回答是,不。没有现成的组件。你将不得不卷起自己,弄脏你的手。

分解你的问题。

您需要实体是可浮动的。您仅有的两个(体面)选择是JLayeredPaneJDesktopPane。您选择哪个取决于您要实现的功能。我可能会从JLayeredPane. 这将允许您将组件放置在您想要的位置,并提供更轻松地控制 Z 水平的能力。

这样做的问题是,您不仅要负责定位组件,还要负责调整它们的大小。

接下来,您需要一个实体组件。

在我看来,这将是一系列复合组件。您需要一个“标题”或“标题”组件,它会提供表格的名称、展开控件以及可以拖动它的方法。

我会从一个简单的JPanel. 我将在其上添加 a JLabel、 aJTextField和 a JButtonorJLabel以充当扩展控件,具体取决于我所追求的外观。

JLabel作为标题的标题。JTextField就像编辑一样。首先隐藏文本字段。稍微巧妙地使用布局管理器,您可以在空间位置放置两个组件。当文本字段可见时,它将能够覆盖标签。

您将需要为此组件添加鼠标侦听器和鼠标运动侦听器。单击时,应显示编辑器。使用ActionListenerandFocusListener确定用户何时完成编辑并更新标签并隐藏编辑器。您可能还希望将 a 绑定Esc到该字段以允许用户取消编辑,键绑定最适合此操作。

您还需要跟踪鼠标拖动事件,以便重新定位“实体”

然后将此标头组件添加到实体组件中。

您将需要 aJListJTable来保存字段信息。在我看来,aJTable将提供最多的功能,让您更轻松地编辑字段信息。

您还需要执行一些自定义绘画以提供从一个表到另一个表的链接。这是一个非常重要的问题,需要您进行一些非常好的设计。

您需要开始的每一件事都可以在使用 JFC/Swing 创建 GUI中找到,但您还需要通读并理解执行自定义绘画2D 图形

于 2013-03-30T00:39:04.983 回答