【Java】 swing JFrame マルチディスプレイ環境で特定のディスプレイにウインドウを表示する

https://github.com/BigMarker/deskshare-public/blob/master/jnlp/src/main/java/com/bigmarker/client/deskshare/ScreenCap.java にあった showOnScreen という関数を利用させてもらう。

    private static void showOnScreen(int screen, JFrame frame) {
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gd = ge.getScreenDevices();
        if (screen > -1 && screen < gd.length) {
            frame.setLocation(gd[screen].getDefaultConfiguration().getBounds().x, frame.getY());
        } else if (gd.length > 0) {
            frame.setLocation(gd[0].getDefaultConfiguration().getBounds().x, frame.getY());
        } else {
            throw new RuntimeException("No Screens Found");
        }
    }

【Java】swing JFrame ウインドウに画像を表示する ついでに画像をリサイズする

リサイズ後のサイズを pictureWidth, pictureHeight にセットしておく。
イメージのファイル名は filename に。

    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame();
    frame.setLayout(new GridLayout(1, 1));

    BufferedImage img = null;
    img = ImageIO.read(new File(filename));

    Image dimg = img.getScaledInstance(pictureWidth, pictureHeight, Image.SCALE_SMOOTH);

    ImageIcon image;
    image = new ImageIcon(dimg);
    image.getImage().flush();

    JLabel label = new JLabel(image);
    frame.add(label);

    frame.pack();

    frame.setVisible(true);