Java 不同显示器上的不同帧

Java 不同显示器上的不同帧,java,swing,jframe,multiple-monitors,Java,Swing,Jframe,Multiple Monitors,我有一个中央数据库,我用JDBC连接到它,在对数据做了一些准备之后,我制作了6个不同的JFrame,我喜欢在建筑物不同墙壁上的不同显示器(监视器)上显示每个JFrame,我只能通过IP(通过WiFi)同时访问。我能用GraphicsEnvironment解决这个问题吗 如果有任何建议,我将不胜感激 如果操作系统可以将每个屏幕视为一个单独的图形设备,那么您应该能够使用类似于 import java.awt.EventQueue; import java.awt.GraphicsConfigurat

我有一个中央数据库,我用JDBC连接到它,在对数据做了一些准备之后,我制作了6个不同的JFrame,我喜欢在建筑物不同墙壁上的不同显示器(监视器)上显示每个JFrame,我只能通过IP(通过WiFi)同时访问。我能用GraphicsEnvironment解决这个问题吗


如果有任何建议,我将不胜感激

如果操作系统可以将每个屏幕视为一个单独的图形设备,那么您应该能够使用类似于

import java.awt.EventQueue;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class TestGC {

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }
                GraphicsDevice[] sds = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
                for (GraphicsDevice sd : sds) {
                    System.out.println(sd.getIDstring());
                    GraphicsConfiguration gc = sd.getDefaultConfiguration();
                    JFrame f = new JFrame(gc);
                    f.add(new JLabel(sd.getIDstring()));
                    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    f.pack();
                    centerOn(f, gc);
                    f.setVisible(true);
                }
            }
        });
    }

    private static void centerOn(JFrame f, GraphicsConfiguration gc) {
        Rectangle bounds = gc.getBounds();
        int x = bounds.x + ((bounds.width - f.getWidth()) / 2);
        int y = bounds.y + ((bounds.height - f.getHeight()) / 2);
        f.setLocation(x, y);
    }
}

你所说的“仅通过ip访问”是什么意思?你是说屏幕还是每一个都是不同的电脑?只是屏幕而已!该节目将只在一台主PC上运行,共有6个屏幕(智能电视)。操作系统是否将每个屏幕视为单独的显示器?是的,您可以假设!