Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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 全屏幕JFrame顶部的Modal JFrame_Java_Swing_Jframe_Jpanel_Fullscreen - Fatal编程技术网

Java 全屏幕JFrame顶部的Modal JFrame

Java 全屏幕JFrame顶部的Modal JFrame,java,swing,jframe,jpanel,fullscreen,Java,Swing,Jframe,Jpanel,Fullscreen,我想要f.setVisible(true)在设置为模态的全屏幕JFrame中弹出。我该怎么做?因为在该代码中,当我单击按钮时,f.setVisible(true)显示在全屏JFrame之外。期待您的回答。所以您希望在主JFrame中包含类似于JInternalFrame的内容: package javaapplication1; import java.awt.Color; import java.awt.DisplayMode; import java.awt.GraphicsDevice;

我想要
f.setVisible(true)在设置为模态的全屏幕JFrame中弹出。我该怎么做?因为在该代码中,当我单击按钮时,
f.setVisible(true)显示在全屏JFrame之外。期待您的回答。

所以您希望在主
JFrame
中包含类似于
JInternalFrame
的内容:

package javaapplication1;

import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JavaApplication1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        final JFrame frame = new JFrame();
        final NewJPanel p = new NewJPanel();
        frame.setTitle("Frame");
        frame.setSize(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        final GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        device.setFullScreenWindow(frame);
        device.setDisplayMode(new DisplayMode(800, 600, 32, 60));


        JButton btn = new JButton();
        btn.setText("Button");
        JPanel panel = new JPanel();

        panel.add(btn);
        frame.add(panel);

        btn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                JFrame f = new JFrame();
                JPanel p = new JPanel();
                f.setSize(300, 300);
                p.setBackground(Color.red);

                f.add(p);
                f.setLocationRelativeTo(null);
                f.setAlwaysOnTop(true);
                f.setVisible(true);
            }
        });
    }
}


关于
JInternalFrame
的更多信息,您可以在主
JFrame
内部找到
JInternalFrame

package javaapplication1;

import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JavaApplication1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        final JFrame frame = new JFrame();
        final NewJPanel p = new NewJPanel();
        frame.setTitle("Frame");
        frame.setSize(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        final GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        device.setFullScreenWindow(frame);
        device.setDisplayMode(new DisplayMode(800, 600, 32, 60));


        JButton btn = new JButton();
        btn.setText("Button");
        JPanel panel = new JPanel();

        panel.add(btn);
        frame.add(panel);

        btn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                JFrame f = new JFrame();
                JPanel p = new JPanel();
                f.setSize(300, 300);
                p.setBackground(Color.red);

                f.add(p);
                f.setLocationRelativeTo(null);
                f.setAlwaysOnTop(true);
                f.setVisible(true);
            }
        });
    }
}


关于
JInternalFrame
的更多信息,您可以找到+1,他可以生成的输出:-)我的意思是不需要附加图像需要边界布局吗?因为在我的应用程序中,它已经修复了设计和布局。我刚刚删除了边框布局。组件未显示:(你必须在某个地方添加
JDesktopPane
。嗯?有什么问题吗?顺便说一句……不要像你在上一篇评论中所说的那样使用“模态JFrame”。如果你想在主框架内显示某种对话框,你可以使用
JOptionPane.showInternalMessageDialog()
,如下所示:+1,他可以生成的输出:-)我的意思是没有必要附加图像需要边界布局吗?因为在我的应用程序中,它已经修复了设计和布局。我刚刚删除了边框布局。组件未显示:(您必须在某个地方添加
JDesktopPane
。嗯?有什么问题吗?顺便说一句……不要像您在上一条评论中所说的那样使用“模态JFrame”。如果您想在主框架内显示某种对话框,可以使用
JOptionPane.showInternalMessageDialog()
,如下所示: