【问题标题】:How to implement Full-Screen Exclusive Mode API如何实现全屏独占模式 API
【发布时间】:2014-03-30 15:16:46
【问题描述】:

我有一个使用 netbeans 在 GUI 中制作的大型 java 程序,其中有许多 java 文件。我用过frame.setExtendedState(JFrame.MAXIMIZED_BOTH);,但对我来说效果不佳。我真正想要的是,当我遇到这个 API 时,这些项目会被重新调整为全屏。我想知道如何在我的程序中实现这个 API。问题是我是一个新手(我使用 Netbeans GUI 制作了大部分程序),我不知道应该在哪里添加代码以使其使用这个 API

有简单的方法吗?哪个不需要我重新制作整个程序?

【问题讨论】:

  • @HithamS.AlQadheeb 我看过这个页面,但问题是现在我不能再制作这个程序了......难道没有简单的方法吗???
  • 请您用简单的语言告诉我问题。尝试在JFrame中添加JScrollPane,然后在其中添加一个JPanel,然后您可以在其中添加组件,它会自动滚动。跨度>
  • 这部分“项目被重新调整为全屏”,如果这意味着调整组件的大小(即使它们更大/更小),那么是的,您需要重写。该方法setExtendedState(JFrame.MAXIMIZED_BOTH); 只会最大化框架而不调整组件的大小。阅读docs.oracle.com/javase/7/docs/api/java/awt/…
  • @DonChakkappan 我不明白你我不是在找卷轴

标签: java netbeans


【解决方案1】:

您应该通过Full Exclusive Mode tutorial。只需检查是否支持全屏模式。如果是,则获取屏幕设备和setFullScreenWindow(...)。如果不支持,请使用常规窗口。

看这个简单的例子

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class FullWindow extends JFrame {
    private boolean isFullScreen = false;
    private GraphicsDevice device;

    public FullWindow(GraphicsDevice device) {
        this.device = device;
        initFullScreen();
    }

    private void initFullScreen() {
        isFullScreen = device.isFullScreenSupported();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setUndecorated(isFullScreen);
        setResizable(!isFullScreen);
        if (isFullScreen) {
            // Full-screen mode
            device.setFullScreenWindow(this);
            validate();
        } else {
            // Windowed mode
            this.setExtendedState(MAXIMIZED_BOTH);
            this.setVisible(true);
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                GraphicsEnvironment env = GraphicsEnvironment
                        .getLocalGraphicsEnvironment();
                GraphicsDevice device = env.getDefaultScreenDevice();
                new FullWindow(device);
            }
        });
    }
}

【讨论】:

  • 我想知道更多的事情你介意多聊几分钟吗?
  • 你需要知道什么?
  • 我们之前谈过,所以你知道我有什么代码我想知道我把这个放在哪里,还有我试图给你发电子邮件,但也许反映了或者什么......你在忙这些吗天因为你说你要帮助我在布局中制作java程序,以便它可以工作,但之后我无法联系你。我只是想知道你是否.....
  • 抱歉,我很少查看我的电子邮件。是的,我一直很忙。如果你想建立一个聊天,我现在有一点时间
猜你喜欢
  • 2014-05-18
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多