在屏幕和其他操作系统窗口顶部制作一个jframe,使其最大化

时间:2016-07-18 05:01:36

标签: java swing jframe

我有以下转码:

import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class JFrameDemo {

    private JFrame jframe = new JFrame();

    public JFrameDemo() {
        jframe.setSize(new Dimension(800, 20));
        jframe.setUndecorated(true);
        jframe.getContentPane().add(new JLabel("xxxxxxxxxxx"));
        jframe.setVisible(true);
        jframe.setAlwaysOnTop(true);
        jframe.setLocation(0, 0);

        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        jframe.setMaximizedBounds(env.getMaximumWindowBounds());
        jframe.toFront();
        jframe.repaint();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new JFrameDemo();
            }
        });
    }
}

我的jframe窗口始终位于屏幕顶部,但是当浏览器窗口中的其他窗口(如浏览器窗口)最大化时,我jframe重叠该窗口。 当任何操作系统窗口最大化以在我的jframe窗口下方最大化时。 你可以看到:

错误行为


current_wrong_behavior.png

良好行为


wanted_good_behavior.png

因为我理解java不支持该功能,所以我现在问是否存在我应该使用jni加载的任何本机库。

1 个答案:

答案 0 :(得分:0)

所以我正在寻找的行为可以使用jna lib:Docking a java application jna on windows