gpt4 book ai didi

java - 全屏 Swing 应用程序前的 JFileChooser

转载 作者:行者123 更新时间:2023-11-30 08:26:06 25 4
gpt4 key购买 nike

我知道有一些与此问题相关的主题(主要是 this unanswered onethis one 不处理全屏应用程序)。

我基本上尝试了第一个主题示例和可用方法(requestFocus、requestFocusInWindow 等)的所有组合,但 JFileChooser 始终显示在全屏应用程序后面。我也尝试更改文件选择器的父级(将其设置为 null、自身或父框架)但没有成功。

有没有人有这个不太特别的用例的工作示例?或者是否有让用户在全屏应用中选择文件的解决方法?

最佳答案

不幸的是,我不能说你是如何实现全屏应用程序的。但我尝试了一些东西并想出了这个:

import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Gui extends JFrame {

public Gui() {

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

//this.setSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
// Set some charateristics of the frame
this.setExtendedState(Frame.MAXIMIZED_BOTH);
this.setBackground(Color.black);
this.setUndecorated(true);

JButton a = new JButton("PRESS ME!");

a.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(getParent());
}
});

this.add(a);

this.setVisible(true);

}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
new Gui();
}
});
}
}

请注意,我使用当前 JFrame 的父级作为参数创建了一个新的 JFileChooser。

编辑:我现在甚至尝试设置

java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(new Gui());

没有

this.setUndecorated(true);

它对我有用(获得了一个漂亮的全屏 View 并且 JFileChooser 在前面)。我相信窗口装饰的问题与我的窗口管理器有关(我正在使用带有 gnome 的 linux)。

希望这个解决方案对你有用,如果不对:您能否再解释一下,您是如何创建全屏应用的?

关于java - 全屏 Swing 应用程序前的 JFileChooser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21785837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com