簡體   English   中英

如何最大化未修飾的 java swing 屏幕?

[英]How to maximize undecorated java swing screen?

屏幕看起來如何

我想知道如何在未修飾的 Jframe 中使屏幕最大化,因為對於未修飾的 false,它通常會最大化,但對於未修飾的 true,jframe 看起來像這樣。

private void jlMaximizarMenuMouseClicked(java.awt.event.MouseEvent evt) {                                             
        if (this.getExtendedState() != Menu.MAXIMIZED_BOTH) 
        {
          this.setExtendedState(Menu.MAXIMIZED_BOTH);
        }
        else
        {
            this.setExtendedState(Menu.NORMAL);
        }
    }  

這個簡單的例子工作得很好,你的問題是你沒有分享的代碼中的其他地方。 我猜你使用的是透明的 window,這表明你要么沒有使用一個或多個合適的布局,要么你正在使用布局信息,無論如何,沒有最小的可重現示例,沒有太多我們可以做更多的事情來幫助你。

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Main {
    public static void main(String[] args) {
        new Main();
    }

    public Main() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame();
                frame.add(new TestPane());
                frame.setUndecorated(true);
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        public TestPane() {
            JButton normal = new JButton("Normal");
            JButton maximized = new JButton("Maximixed");
            JButton minimized = new JButton("Minimized");

            add(normal);
            add(maximized);
            add(minimized);

            normal.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    ((JFrame)SwingUtilities.windowForComponent(TestPane.this)).setExtendedState(JFrame.NORMAL);
                }
            });
            maximized.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    ((JFrame)SwingUtilities.windowForComponent(TestPane.this)).setExtendedState(JFrame.MAXIMIZED_BOTH);
                }
            });
            minimized.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    ((JFrame)SwingUtilities.windowForComponent(TestPane.this)).setExtendedState(JFrame.ICONIFIED);
                }
            });
        }

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM