如何使 JDialog 在全屏的 JFrame 上工作

问题描述 投票:0回答:0

我正在使用 Swing 和 AWT 编写程序,并且我有一个全屏的 JFrame。在所述框架上,我有一个按钮可以在该框架上打开一个 JDialog。当我单击按钮时,它确实创建了 jDialog,但它使我的屏幕看起来像是在休眠。请帮忙。有什么方法可以制作一个弹出菜单,它与 grab_set() 等效,不会移动,并且可以容纳对象?

全屏代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

//
public class test   {
   public static void main(String[] args)
   {
      GraphicsEnvironment graphics = GraphicsEnvironment.getLocalGraphicsEnvironment();
      GraphicsDevice device = graphics.getDefaultScreenDevice();
      
      JFrame f = new JFrame();
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      
      f.setUndecorated(true);
      f.setResizable(false);
      JMenuBar mb = new JMenuBar();
      mb.setLayout(new BorderLayout());
      
      JButton x = new JButton("X");
      Listeners close_button= new Listeners();
      x.addActionListener(close_button.close());
      x.setPreferredSize(new Dimension(30,30));
      mb.add(x, BorderLayout.EAST);
      f.setJMenuBar(mb);
      device.setFullScreenWindow(f);
   }
}

监听代码

public class Listeners
{
private class Listener_popup implements ActionListener
   {
    private Frame frame;
    public Listener_popup(Frame f)
    {
     frame=f;
    }
    public void actionPerformed(ActionEvent e)
    {
     JDialog d= new JDialog(frame,"hello");
     JLabel l=new JLabel("Hello");
     d.add(l);
     d.setSize(100,100);
     d.setUndecorated(true);
     d.setVisible(true);
    }
   }
  }

我尝试使用带有动作侦听器的 jButton 来创建 jDialog,然后我查看了 jPopup,但这并不是我想要的。接受任何建议。

java swing jframe awt jdialog
© www.soinside.com 2019 - 2024. All rights reserved.