挖坑。。。
tips:getPeer(),只有当组件被绘制后,才有可能给赋值。例如Frame是一个重量级组件,创建Frame对象时并不会创建其对应的peer对象,但是一旦调用了frame.show(),其对应的peer就会被赋值。
下面是一个获取窗口句柄的例子
import sun.awt.windows.WComponentPeer;
import javax.swing.*;
public class GetPeerExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Get Peer Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
WComponentPeer peer = (WComponentPeer)frame.getPeer();
System.out.println("Window Handle: " + peer.getHWnd());
}
}
参考文献:
【1】https://www.oracle.com/technical-resources/articles/java/mixing-components.html
【2】https://blog.csdn.net/weixin_27310985/article/details/114522291