JComponent
(パネル、フレーム、ウィンドウなど)をフルスクリーンにして、ウィンドウのスタートバーを含む画面上のすべてのものと重なるようにするにはどうすればよいですか?
解像度やビットデプスなどのグラフィックデバイスで何かを変更したくありません。他のすべてをオーバーラップさせたいだけです。
このページのコード のいくつかを試して、コンテナーが画面全体に表示されるようにすることができます(したがって、個別コンポーネントのソリューションではありませんが、 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);
}
});
}
...
}
チェックアウト このチュートリアル JavaのフルスクリーンモードAPIについて説明しています。
サンプルコード(チュートリアルから取得)。コードはWindow
で動作するため、これを行うには、JPanel
にWindow
(例:JFrame
)を埋め込む必要があることに注意してください。
GraphicsDevice myDevice;
Window myWindow;
try {
myDevice.setFullScreenWindow(myWindow);
...
} finally {
myDevice.setFullScreenWindow(null);
}
次のAPIを使用する必要があります: http://Java.Sun.com/docs/books/tutorial/extra/fullscreen/index.html
全画面表示にするのは、大きなパネルを作成するほど簡単ではありません。基盤となるOSグラフィックを調べる必要があります。ただし、JPanelコードは問題なく変換されるはずです。
同じことをするために、私はたくさん検索する必要がありました。これは完全に動作するバージョンのステップですので、後で見つけて使用することもできます。
ステップ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:コードをコンパイルして実行する
完了。
もし私があなたなら、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);
}
}