【发布时间】:2013-01-14 09:22:45
【问题描述】:
我正在创建一个可以在两个监视器上运行的应用程序。为此,我创建了 2 个 JFrame。 第一个是我的客户端应用程序,它只会显示我必须看到的信息。第二个(我们称之为 TweetForm)是一个 jframe,它将显示每个人都可以看到的信息。 (可能的显示器是电视)。 我搜索了如何将其放在两个单独的屏幕上并找到以下解决方案: Show JFrame in a specific screen in dual monitor configuration
这很好用,但是: 每当我将注意力集中在我的“主监视器”上时,电视上显示的 tweetForm 就会被最小化。如何防止 jframe 最小化并始终显示? (即使第一个 jframe 是否最小化)
来自第二个 JFRAME 的代码
/**
* Creates new form TweetForm
*/
public TweetForm()
{
initComponents();
dispose();
setUndecorated(true);
pack();
setExtendedState(Frame.MAXIMIZED_BOTH);
setTitle("Serious Request");
this.setAlwaysOnTop(true);
showOnScreen(1, this);
}
public static void showOnScreen( int screen, JFrame frame )
{
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
if( screen > -1 && screen < gs.length )
{
gs[screen].setFullScreenWindow( frame );
}
else if( gs.length > 0 )
{
gs[0].setFullScreenWindow( frame );
}
else
{
throw new RuntimeException( "No Screens Found" );
}
}
【问题讨论】:
-
尝试只使用一个 JFrame。将另一个设置为 JDialog 并将对话框中的数据更新到您的框架。
-
谢谢!那行得通。没想到这么简单:)
标签: java swing jframe monitor minimized