如何使我的Java JFrame包括面板全屏

时间:2015-05-28 17:24:14

标签: java swing

我正在使用Netbeans做一些Java,我想让我的应用程序和它的帧全屏。问题是,它全屏但是然后,因为我的框架没有那么大,所以没有填满屏幕,check image如果你不明白。它必须使面板成为用户的分辨率并将其放在中心位置。

我的代码如下

public class frmMenu extends javax.swing.JFrame {

    public frmMenu() {
        initComponents();
        this.setExtendedState(JFrame.MAXIMIZED_BOTH); 
        this.setUndecorated(true);
    }

2 个答案:

答案 0 :(得分:2)

这在Java中并不是最简单的。需要处理很多细微差别。看看这个:Post

这将致电:

GraphicsDevice device  = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
device.setFullScreenWindow(this);

可以挂钩底层操作系统以获得全屏支持,而不仅仅是制作一个大窗口。

JavaDoc

答案 1 :(得分:1)

只是使用工具包来获取屏幕大小: http://docs.oracle.com/javase/7/docs/api/java/awt/Toolkit.html#getScreenSize()

int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
setSize(width,height);
setUndecorated(true);

更好的方法:

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int)dim.getWidth();
int height = (int)dim.getHeight();
setSize(width,height);
setUndecorated(true);

编辑: 对于良好的头寸设置:

setLocation(0,0);

我猜它是画面上的图像,你应该缩放它。 设置位置后,它将显示在左上角。 我不知道你如何渲染图像,解决这个问题你提供了更多的源代码 对于创建图形,我建议使用比MS绘画更好的东西;)

编辑(2): 重写:

getContentPane().add(panMenu);

要:

getContentPane().add(panMenu,BorderLayout.CENTER);

删除行:

panMenu.setBounds(0, -20, 580, 630);

并确保你有:

setLayout(new BorderLayout());

表示框架 使用图形界面进行布局在绝对定位方面是不好的。因此,由于子面板中的绝对定位,它可能无法完全纠正它