Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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 MigLayout:尝试全屏显示时仅显示窗口_Java_Swing_Miglayout - Fatal编程技术网

Java MigLayout:尝试全屏显示时仅显示窗口

Java MigLayout:尝试全屏显示时仅显示窗口,java,swing,miglayout,Java,Swing,Miglayout,以下是代码: ScreenHeight = Toolkit.getDefaultToolkit().getScreenSize().height, ScreenWidth = Toolkit.getDefaultToolkit().getScreenSize().width; JFrame MainFrame = new JFrame(); MainFrame.setSize(ScreenWidth, ScreenHeight); MainFrame.setDefaultCloseOperat

以下是代码:

ScreenHeight = Toolkit.getDefaultToolkit().getScreenSize().height,
ScreenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;

JFrame MainFrame = new JFrame();
MainFrame.setSize(ScreenWidth, ScreenHeight);
MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
MainFrame.setVisible(true);

/* When set to false, all buttons and boxes are displayed, 
   otherwise only the main window appears */ 
MainFrame.setUndecorated(true); 

Container Pane = Frame.getContentPane();
Pane.setLayout(new MigLayout());
initLoginPanel(Pane); 
布局控件的功能:

private void initLoginPanel(Container Obj) 
{
    JPanel LoginContainer = new JPanel();
    LoginContainer.setLayout(new MigLayout());

    Obj.add(LoginContainer, "pos 0.5al 0.5al");

    JLabel  uNameLabel = new JLabel("Username");
    JTextField uNameBox = new JTextField();

    JLabel uPassLabel = new JLabel("Password");
    JTextField uPassBox = new JTextField();

    JButton LoginButton = new JButton("Login", 90, 26);
    LoginContainer.add(uNameLabel, "wrap");
    LoginContainer.add(uNameBox, "span");
    LoginContainer.add(uPassLabel, "wrap");
    LoginContainer.add(uPassBox, "span");
    LoginContainer.add(LoginButton, "");
}
如果在上面的代码中使用了
MainFrame.setUndercorated(false)
,则它可以正常工作,但没有全屏显示。即显示标题栏、关闭、最小化和最大化按钮

问题:
1.如何使组件在全屏模式下工作。

有两个问题:

  • 设置的位置可见
    显示帧必须是最后一步; 首先,你必须设置你的框架并添加他的内容
  • 调用
    initLoginPanel

    你的代码做了不正确的事情。为什么不直接将组件添加到框架中?i、 e

    initLoginPanel( YourJFrame );
    
  • 固定的简化代码:

    JFrame frame = new JFrame("Main window");
    
    frame.setSize( Toolkit.getDefaultToolkit().getScreenSize() );
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setUndecorated(false);
    
    initLoginPanel(frame);
    
    frame.setVisible(true); //FINALLY show the JFrame!
    

    请不要过度使用代码块。试着解释你的问题,并用小代码片段补充你的文章。谢谢@jmendeth我已经给出了代码,这样人们就可以将粘贴复制到他们的IDE中并自己查看(假设
    main()
    etc是由IDE生成的)。至于解释,我想问题上面的两句话就足够了MigLayout不负责处理全屏幕模式或框架装饰,这是Swing和外观的责任。如果你提供了SSCCE,那么就更容易得到帮助;这里没有显示的代码可能有问题。请学习java命名约定并坚持使用them@check123如果其他布局管理器工作得很好,那么您肯定应该在问题中发布2个SSCCE:一个不工作(与MigLayout一起),另一个工作(与另一个LM一起)。我坚持使用SSCCE,因为我相信你提到的两个例子都有其他不同之处,不仅仅是LayoutManager…我之前尝试过,并根据你的建议再次纠正了它,但仍然不起作用!在我第一次尝试您的代码时,我忽略了在
    setVisible
    之前调用
    initLoginPanel()
    。改变现状已经解决了这个问题。谢谢+1&正确。