web-dev-qa-db-ja.com

Javaパネルをフルスクリーンにする

JComponent(パネル、フレーム、ウィンドウなど)をフルスクリーンにして、ウィンドウのスタートバーを含む画面上のすべてのものと重なるようにするにはどうすればよいですか?

解像度やビットデプスなどのグラフィックデバイスで何かを変更したくありません。他のすべてをオーバーラップさせたいだけです。

15
clamp

このページのコード のいくつかを試して、コンテナーが画面全体に表示されるようにすることができます(したがって、個別コンポーネントのソリューションではありませんが、 JFrame)のようなコンテナ内のコンポーネントのセットの場合

public class MainWindow extends JFrame
{
  public MainWindow()
  {
    super("Fullscreen");
    getContentPane().setPreferredSize( Toolkit.getDefaultToolkit().getScreenSize());
    pack();
    setResizable(false);
    show();

    SwingUtilities.invokeLater(new Runnable() {
      public void run()
      {
        Point p = new Point(0, 0);
        SwingUtilities.convertPointToScreen(p, getContentPane());
        Point l = getLocation();
        l.x -= p.x;
        l.y -= p.y;
        setLocation(l);
      }
    });
  }
  ...
}
11
VonC

チェックアウト このチュートリアル JavaのフルスクリーンモードAPIについて説明しています。

サンプルコード(チュートリアルから取得)。コードはWindowで動作するため、これを行うには、JPanelWindow(例:JFrame)を埋め込む必要があることに注意してください。

GraphicsDevice myDevice;
Window myWindow;

try {
    myDevice.setFullScreenWindow(myWindow);
    ...
} finally {
    myDevice.setFullScreenWindow(null);
}
18
Adamski

次のAPIを使用する必要があります: http://Java.Sun.com/docs/books/tutorial/extra/fullscreen/index.html

全画面表示にするのは、大きなパネルを作成するほど簡単ではありません。基盤となるOSグラフィックを調べる必要があります。ただし、JPanelコードは問題なく変換されるはずです。

6
Sandro

同じことをするために、私はたくさん検索する必要がありました。これは完全に動作するバージョンのステップですので、後で見つけて使用することもできます。

ステップ1:fullscreen.Javaというファイルを作成します

ステップ2:このコードをコピーして、そのまま貼り付けます。

import javax.swing.*;
import Java.awt.*;
import Java.awt.event.*;

public class fullscreen extends Window 
{
  private Button button;

  public fullscreen() 
  {
    super(new Frame());
    button = new Button("Close");
    button.addActionListener(new ActionListener() 
    {
      public void actionPerformed(ActionEvent e) 
      {
        System.exit(0);
      }
    });

    setLayout(new FlowLayout());
    add(button);

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setBounds(0,0,screenSize.width, screenSize.height);
  }

  public static void main(String[] args) 
  {
    // This will take over your whole screen tested and works in my:
    // Fedora 12/13/14
    // CentOS 5.0
    // if this works for you, in other platforms, please leave a comments which OS it worked.
    // happy coding!
    new fullscreen().setVisible(true);
  }

}

ステップ3:コードをコンパイルして実行する

完了。

1
YumYumYum

もし私があなたなら、Java Jframeの境界線を描画しないようにしてから、すべての画面を表示するようにします。

import Java.awt.GraphicsEnvironment;
import Java.awt.Rectangle;

import javax.swing.JFrame;


public class FenNoBorder extends JFrame {

    public FenNoBorder () {
        setUndecorated(true);
        setVisible(true);
        GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment();
        Rectangle maximumWindowBounds=graphicsEnvironment.getMaximumWindowBounds();
        setBounds(maximumWindowBounds);
    }
}
0
user3426905