2010-09-01 78 views
5

我正在Windows XP上的Eclipse中开发基于Swing的Java应用程序。我有双显示器设置。用于Eclipse的更改显示启动

我想在不同的监视器上运行程序,而不是运行Eclipse的程序。我如何设置我的调试配置来实现此目的?

+0

您正在使用哪种操作系统? – Gadolin 2010-09-20 07:00:44

+0

我正在使用WinXP。 – 2010-09-20 12:30:13

回答

2

当一个新的框架打开时,它默认为坐标0,0。具体到哪里取决于您的操作系统的显示器布局。通常,0,0将是主监视器的左上角。

问题的解决方案是在辅助监视器上运行Eclipse,以便应用程序将在另一个(主)监视器上打开。您实际上并不需要移动Eclipse来执行此操作。进入操作系统的显示器设置并将主显示器切换到您希望启动应用程序的显示器。 Eclipse现在将在辅助监视器上运行。

您的新框架现在将在另一个显示器上打开,并且您在该过程中仅更改了操作系统的配置设置中的任何代码。

+0

谢谢,这似乎是伎俩! – 2010-09-26 12:05:57

0

我认为你不能那样做。我找到的唯一解决方案是将程序从第一个显示屏手动移动到第二个显示屏,然后在该位置将其关闭(使用关闭按钮而不是控制台终止红色按钮,可以在不保存任何内容的情况下停止虚拟机)。然后在下一次重新启动时,您的程序启动应显示在第二个显示屏上。为了让此解决方案正常工作,启动配置不应在每次启动时清除工作区和配置,以保持程序屏幕位置。

请参阅RCP opening monitor了解有关RCP应用程序的内容。

+1

这将适用于RCP应用程序,但不适用于Swing应用程序。 – zvikico 2010-09-20 06:34:22

+0

Oopppsss zvikico是正确的,我的回答是一个RCP应用程序,但不是一个Swing的。我没有正确地回答这个问题,对不起。 – 2010-09-20 06:41:38

0

您可以通过编程实现该行为。我相信你可以通过Google找到如何在第二台显示器上打开窗口的例子。如果它只是在调试时才需要,那么在启动配置中添加一个开关(更具体地说,是JVM运行时参数),并在程序启动时检查开关(System.getProperty)。

+0

我不想修改我的代码来执行此操作,但可能会在java代码中控制程序的默认窗口,但这不是一个选项。我想设置Eclipse来做到这一点,以便我可以在多个项目中重复使用该设置。如果有JVM运行时参数来选择默认监视器,那正是我所追求的。你不知道他们是什么,是吗? – 2010-09-20 12:33:06

+0

我对这样的选项并不熟悉。它取决于GraphicsEnvironment/GraphicsConfiguration的实现。您可以编写一个可重用组件并在整个项目中使用它。它不会影响您的生产代码。 – zvikico 2010-09-20 15:20:31

2

这取决于你是如何设置第二台显示器的。对于我的回答,我假设你将它作为“扩展”添加到桌面上(因此可以通过拖动鼠标在它们之间移动窗口)。

在此模式下,您的桌面变得更大。要查看,请拨打GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds

宽度应该是两个显示器宽度的总和,高度应该是两个高度中较大的一个。

请注意,x坐标可以是< 0(如果您将右侧显示器设置为默认显示器,则会发生这种情况)。

要将窗口移动到另一个显示器,只需使用具有适当值的位置(setPosition())并将该位置作为选项传递给程序。或者将当前位置保存为首选项节点,并在应用程序再次运行时再次在相同位置打开窗口。

如果您的显示器是独立配置的,则应该查看GraphicsEnvironment.getScreenDevices() API。

相关问题