Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作全屏java小程序?_Java_Applet_Fullscreen - Fatal编程技术网

如何制作全屏java小程序?

如何制作全屏java小程序?,java,applet,fullscreen,Java,Applet,Fullscreen,我正在用java小程序设计一个心理学实验。我必须让我的java小程序全屏显示。做这件事的最佳方式是什么?我该如何做 由于我已经三年没有使用java小程序了(上次我是在做课程作业时使用的:),我已经忘记了大部分概念。我在谷歌上搜索发现了这个链接: 但是在上面链接中描述的方法中,您必须在applet中放置一个JFrame,我不知道如何做 不管我需要什么快速肮脏的方法,因为我没有太多的时间,这就是我为什么在这里问它的原因 Thanx提前显而易见的答案是不要使用小程序。编写一个使用JFrame或JWi

我正在用java小程序设计一个心理学实验。我必须让我的java小程序全屏显示。做这件事的最佳方式是什么?我该如何做

由于我已经三年没有使用java小程序了(上次我是在做课程作业时使用的:),我已经忘记了大部分概念。我在谷歌上搜索发现了这个链接:

但是在上面链接中描述的方法中,您必须在applet中放置一个JFrame,我不知道如何做

不管我需要什么快速肮脏的方法,因为我没有太多的时间,这就是我为什么在这里问它的原因


Thanx提前

显而易见的答案是不要使用小程序。编写一个使用JFrame或JWindow作为顶级容器的应用程序。将小程序转换成应用程序并不是一件很繁重的工作。小程序被设计成嵌入其他东西,通常是网页

如果您已经有了一个小程序,并且想要使其全屏显示,那么有两个快速而肮脏的攻击:

1) 。如果您知道屏幕分辨率,只需在HTML中将小程序参数设置为该大小,然后以全屏模式运行浏览器


2) 。在appletviewer中运行小程序,而不是在网页中运行,并最大化appletviewer窗口。

我认为您希望使用WebStart。您可以从浏览器进行部署,但在其他方面,它是一个成熟的应用程序。有一些browserish安全限制,但是,由于您当前正在使用小程序,我想我可以假定它们不是问题。

为什么不从小程序中打开一个新帧(从“start()”方法,或者最好在用户按下“open”按钮后),并将其设置为最大化

JFrame frame = new JFrame();
//more initialization code here
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(dim.width, dim.height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
别忘了:应该从EDT创建并打开JFrame。不能保证在该线程上调用Applet start(),因此请使用SwingUtilities.invokeLater()。当然,如果您选择按钮路由,按钮侦听器将在EDT上调用,因此您应该是安全的。

我发现这个问题可以正常工作。在Linux 64位(Chrome和Firefox)和Windows 7 64位(Chrome和Explorer)中测试

唯一的问题是,我的小程序使用了浏览器中的所有空间,当用户关闭全屏模式时,小程序无法缩放到浏览器大小。解决方案是在进入全屏模式之前保持小程序以前的大小,然后在小程序返回正常模式时设置此大小:

public void setFullScreen() {   
        if (!this.fullscreen) {
            size = this.getSize();
            if (this.parent == null) {
                this.parent = getParent();
            }
            this.frame = new Frame();
            this.frame.setUndecorated(true);
            this.frame.add(this);
            this.frame.setVisible(true);

            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice[] devices = ge.getScreenDevices();
            devices[0].setFullScreenWindow(this.frame);
            this.fullscreen = true;
        } else {
            if (this.parent != null) {
                this.parent.add(this);
            }
            if (this.frame != null) {
                this.frame.dispose();
            }
            this.fullscreen = false;
            this.setSize(size);
            this.revalidate();
        }       
        this.requestFocus();
    }

是的,我想我在某个地方读到过,不鼓励使用applet,应该使用javawebstart。