jframe设置大小为屏幕大小但减去标题栏

qojgxg4l  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(387)

我想有一个jframe的大小,适合我的屏幕完美。我曾经 getScreenSize(); 获取计算机的分辨率并将其设置为 JFrame 的大小。然而,我发现jframe的大小实际上比我的计算机的分辨率大,因为标题栏(这意味着你会发现jframe的底部在窗口任务栏后面)
以下代码说明了我的问题:

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

public class Titlebar extends JFrame {

    private final Dimension _screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    public void run(){
        this.setTitle("TitleBar"); 
        this.setSize(_screenSize);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    } 

    public static void main(String[] args) {
        Titlebar test = new Titlebar();
        test.run();
    }
}

可以设置jframe的大小减去titlebar的大小吗?

ezykj2lf

ezykj2lf1#

有两种方法:1。只需使用代码“最大化”窗口,即添加以下内容:

this.setExtendedState( this.getExtendedState()|JFrame.MAXIMIZED_BOTH );

您的代码如下所示:

public class Titlebar extends JFrame {

    private final Dimension _screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    public void run(){
        this.setTitle("TitleBar"); 
        this.setSize(_screenSize);
        this.setExtendedState( this.getExtendedState()|JFrame.MAXIMIZED_BOTH );
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    } 

    public static void main(String[] args) {
        Titlebar test = new Titlebar();
        test.run();
    }
}

2.此选项用于解决问题,即始终保持在顶部,然后您将在任务栏上看到此选项,即添加以下内容:

this.setAlwaysOnTop(true);

您的代码如下:

public class Titlebar extends JFrame {

    private final Dimension _screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    public void run(){
        this.setTitle("TitleBar"); 
        this.setSize(_screenSize);
        this.setAlwaysOnTop(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    } 

    public static void main(String[] args) {
        Titlebar test = new Titlebar();
        test.run();
    }
}

根据您的需要,您可以选择这个选项。但我相信选择1对你有好处。

相关问题