Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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边框上的鼠标?_Java_Swing_Jframe_Mouseevent_Border - Fatal编程技术网

Java 如何检测jframe边框上的鼠标?

Java 如何检测jframe边框上的鼠标?,java,swing,jframe,mouseevent,border,Java,Swing,Jframe,Mouseevent,Border,在调整jframe大小(拖动边框)的最后,我需要知道用户何时在边框上释放鼠标,以进行特定处理。我已经搜索过了,但似乎我找到的都是更复杂/更具体的案例 import java.awt.*; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import j

在调整jframe大小(拖动边框)的最后,我需要知道用户何时在边框上释放鼠标,以进行特定处理。我已经搜索过了,但似乎我找到的都是更复杂/更具体的案例

import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;

public class FrameDemo {

private static void createAndShowGUI() {
    JFrame frame = new JFrame("FrameDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel emptyLabel = new JLabel("");
    emptyLabel.setPreferredSize(new Dimension(175, 100));
    frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

    frame.pack();
    frame.setVisible(true);
    frame.addComponentListener(new ComponentAdapter() {
        @Override
        public void componentResized(ComponentEvent e) {
            System.out.println("componentResized");
            here I am resizing the components inside the contentPane, no interruption, it's ok
        }
    });
    frame.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseReleased(MouseEvent e) {
            System.out.println("released");
            **here I need to do specific action on a component but it is never fired**
        }
    });
}

public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            createAndShowGUI();
        }
    });
}
}
据了解,边界不是JFrame的一部分

:“框架[…]是带有边框等装饰的窗户”。。。“默认情况下,窗口装饰由本机窗口系统提供。”

根据边框,窗口装饰不是JFrame的一部分

:“框架[…]是带有边框等装饰的窗户”。。。“默认情况下,窗口装饰由本机窗口系统提供。”

根据边框,窗口装饰不是JFrame的一部分

:“框架[…]是带有边框等装饰的窗户”。。。“默认情况下,窗口装饰由本机窗口系统提供。”

根据边框,窗口装饰不是JFrame的一部分


:“框架[…]是带有边框等装饰的窗户”。。。“默认情况下,窗口装饰由本机窗口系统提供。”

一个可能的选项是使用:

Toolkit.getDefaultToolkit.setDynamicLayout(false) 
这意味着框架的布局仅在释放鼠标时完成,这意味着
componentResized()
事件只触发一次


否则,您将需要使用未装饰的框架,然后添加回您自己的自定义边框和调整大小代码。

一个可能的选项是使用:

Toolkit.getDefaultToolkit.setDynamicLayout(false) 
这意味着框架的布局仅在释放鼠标时完成,这意味着
componentResized()
事件只触发一次


否则,您将需要使用未装饰的框架,然后添加回您自己的自定义边框和调整大小代码。

一个可能的选项是使用:

Toolkit.getDefaultToolkit.setDynamicLayout(false) 
这意味着框架的布局仅在释放鼠标时完成,这意味着
componentResized()
事件只触发一次


否则,您将需要使用未装饰的框架,然后添加回您自己的自定义边框和调整大小代码。

一个可能的选项是使用:

Toolkit.getDefaultToolkit.setDynamicLayout(false) 
这意味着框架的布局仅在释放鼠标时完成,这意味着
componentResized()
事件只触发一次

否则,您将需要使用未装饰的框架,然后添加回您自己的自定义边框和调整大小的代码