2012-02-10 122 views
1

我已经看过java库,不知道用什么来做到这一点.. 我已经尝试JInternalFrame,但那不是我真正想要的..因为它需要被添加到JDesktopPanel对吗?组件小窗口

而在我的节目,我有使用BorderLayout的与内容窗格一个JFrame .. 然后在的borderlayout中心我有一个JTextArea上的borderlayout东我有一个列表...和南部的borderlayout我有一个JPanel ..

我想要的是,当我做某个动作时,它会弹出一个“迷你窗口”,我需要选择一些东西..你看? 如果我创建JDesktopLane,它将重叠我在容器上的内容..

窗口将由我制作,就像一个颜色选择器托盘,就像一个带有颜色的网格..以及顶部的标签,用于说明一些文本。 。

我只是不知道如何做一个“窗口”比其他部件,并且用户仍然可以拖过框架,并与所有的其他组件。该JTextArea中和等..

我互动猜你明白,非常感谢提前! 如果妳不明白的地方,请告诉我,我真的想这样做:) 只是不知道有什么用..再次

感谢;)

+0

我忘了说,我不想用另一个JFrame ..这对代码有点不好,它有一个简单函数的小窗口..从网格中选择一种颜色:) – TiagoM 2012-02-10 22:08:39

回答

1

该任务的典型类别为JWindow,这是一个可以自由定位的无边框顶层窗口。您可以使用SwingUtilities.getPointFromComponent获取已实现坐标的屏幕坐标。

顶层窗口(JFrame,JDialog,JWindow)不会添加到容器。他们可以获得其他窗口作为父项。

我不想使用另一个JFrame的..这是代码有点坏,它的一个小窗口,用一个简单的功能..

结构你的代码,所以你可以读取它,其他人可以阅读它,你可以很容易地调试(后者是第一个结果)。低班数是毫无用处的,大部分时间都是徒劳的。

为什么另一个JFrame(或其他窗口)不好?

如果你绝对要避免打开顶级窗口(例如避免小程序警告图标或实施一种特殊的用户界面),你可以使用JLayeredPane添加上述现有的GUI元素的其他JPanel秒。

+0

我的意思是,如果我想在applet上使用它,那么我的老师告诉我:2个框架不会工作,最好的图形代码是只使用一个框架的代码..然后你添加所有你想要的它.. 所以你说我可以添加JWindow框架内容?谢谢 – TiagoM 2012-02-10 22:26:52

+2

从技术上讲,很多时候都需要多个窗口(比如这里的弹出窗口)。从用户体验来看,一个*主*窗口可能就足够了(对于最终用户应用程序);仍然会有对话框和弹出窗口。从班级人数或开发人员的角度来看,这并不重要 - 当然两个窗口工作,应该防止它? /小程序有一个限制:当你从一个Applet打开一个窗口时,你会在窗口旁看到一个小的警告图标,所以你不能让用户假装从网页打开系统窗口。 – 2012-02-10 22:32:21

+0

嗯,但JPanels不能被拖向右?我需要制作一个服装类扩展JPanel并为“拖动窗口”添加鼠标监听器?在此先感谢 – TiagoM 2012-02-11 03:54:34

2

你试过JDialog

+0

是的,但我无法添加它到框架的内容窗格..它给我在控制台上的错误。 谢谢你的回复 '错误是:线程中的异常“AWT-EventQueue-0”java.lang.IllegalArgumentException:向容器中添加一个窗口 – TiagoM 2012-02-10 22:09:24

+2

您不需要将JDialog添加到JFrame中。您创建对话框的方式与创建JFrame的方式相同,并使其可见。 – camickr 2012-02-11 04:10:02

+0

它的工作!这可能是我正在寻找:) 它是否给小程序带来问题?谢谢btw – TiagoM 2012-02-11 04:12:56

2

这是因为JDialog的不是组件在一个JFrame被添加,它是在它自己的

,如果你使用的JDialog,构建参数父表示至极帧的JDialog是关系到运行一个独立的事情。