Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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中获取窗口句柄_Java_Jframe_Window_Native_Handle - Fatal编程技术网

在Java中获取窗口句柄

在Java中获取窗口句柄,java,jframe,window,native,handle,Java,Jframe,Window,Native,Handle,我一直在尝试使用以下代码获取JFrame的当前窗口指针: public class MainClass { private JFrame mainFrame; private JPanel controlPanel; public static void main(String[] args) { JFrame jFrame = new JFrame(); jFrame.setSize(400,400); jFrame.s

我一直在尝试使用以下代码获取JFrame的当前窗口指针:

public class MainClass
{
    private JFrame mainFrame;
    private JPanel controlPanel;

    public static void main(String[] args) {
        JFrame jFrame = new JFrame();
        jFrame.setSize(400,400);
        jFrame.setVisible(true);

        try {
            jFrame.setVisible(true);
            final HWND hwnd = new HWND(Native.getComponentPointer(jFrame));
            System.out.println(hwnd);

        } finally {
            jFrame.dispose();
        }
    }

}
但是,输出的结果总是'native@0x0'. 我做错了什么


谢谢大家!

你在用什么windows或Mac?如果使用Mac,则无法获取指针,因为此方法只能从windows计算机获取windows的指针

问题将出现在Native.java代码中。我正在导入'com.sun.jna.Native'。有什么问题吗@很抱歉,我假设这是您自己的代码。不确定它是否有助于获取句柄,但使用JNA,您也可以在Mac上获取进程ID
CLibrary.INSTANCE.getpid()
,然后使用AppleScript,您可以通过进程ID与它进行交互。这是一种黑客攻击,但它可以工作。