Java Jframe 向另一个 X Server 启动另一个 JFrame

标签 java swing jframe xserver

我有一个在Xvnc(在Ubuntu上)屏幕(DISPLAY:1)上运行的java应用程序,我需要做的是,从一个应用程序(即正在运行的应用程序)启动另一个JFrame到主屏幕DISPLAY:0在显示中:1。

我考虑过使用 Runtime.getRuntime().exec(),但问题是,我需要从主应用程序控制第二个 JFrame 属性。

请帮助我如何实现这一目标。谢谢。我不需要跨平台解决方案,只需要 ubuntu。

更新:

我使用了代码

try{
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice[] gd = ge.getScreenDevices();
    for(int i = 0; i < gd.length; i++){
        System.out.println(gd[i]);
    }
} catch (Exception e){
    e.printStackTrace();
}

我只得到一个显示器 X11GraphicsDevice[screen=0],这意味着 GraphicsDevice[] gd = ge.getScreenDevices(); 只有 1 个设备。未检测到我的 XVNC X11 服务器 (DISPLAY:1)。

最佳答案

以下是如何将框架设置为显示
为类创建实例数据:

public class Graphic{
 private GraphicsEnvironment graphicsEnviorment;
 private DisplayMode dm, dm_old;
 private    JFrame frame1=new JFrame(), frame2 =new JFrame(); // we now have access to both jframes

public void makeScreen(){
    graphicsEnviorment = GraphicsEnvironment.getLocalGraphicsEnvironment();

    GraphicsDevice[] devices = graphicsEnviorment.getScreenDevices();

    dm_old = devices[0].getDisplayMode(); // replace 0 with screen #
    dm = dm_old;
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    //place dead center on screen 
    int windowX = Math.max(0, (screenSize.width - frame.getWidth()) / 2);
    int windowY = Math.max(0, (screenSize.height - frame.getHeight()) / 2);

    frame1.setLocation(windowX, windowY);

             frame1.setVisable(true);
             // frame 2

            dm_old = devices[0].getDisplayMode(); // replace 0 with screen #
    dm = dm_old;
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    //place dead center on screen 
    int windowX = Math.max(0, (screenSize.width - frame.getWidth()) / 2);
    int windowY = Math.max(0, (screenSize.height - frame.getHeight()) / 2);
    frame2.setLocation(windowX, windowY);

             frame2.setVisable(true);

            }
}

现在使用观察者平台(监听器)来处理两个帧之间的更改...

关于Java Jframe 向另一个 X Server 启动另一个 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840402/

相关文章:

java - 如何向右旋转数组

java - 在 Android 中比较两次

java - 将随机图像设置为imageview android

java - 防止 JInternalFrame 移出 JDesktopPane

java - 一段时间后如何打开新的 JPanel (Java)?

java.io.IOException : Stream closed using BouncyCaSTLe

java - 使用 ImageIO.read 时出现问题

java - 如何实时调整Java动画?

java - 如何最大化 JFrame

java - 获取应用启动路径