java獲取窗口
㈠ java 源代碼注釋
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GameTest extends JFrame implements ActionListener{
/*
* 新建一個主面板(這個類可能是自定義的,本程序和API中沒有)。
*/
MainPanel j=new MainPanel();
JButton jPreview;
JLabel label;
Container container;
JPanel panel;
/**
* 主函數
* @param args
*/
public static void main(String[] args) {
//運行程序
new GameTest();
}
/**
* 構造函數。
*
*/
public GameTest()
{
//新建一個標題為「拼圖」的窗口
JFrame fr =new JFrame("拼圖");
//獲取窗口容器。
container=fr.getContentPane();
//創建菜單條
JMenuBar jMenuBar=new JMenuBar();
//以下初始化菜單,並且設置快捷鍵和添加監聽器。
JMenu jMenuGame=new JMenu("游戲(G)");
jMenuGame.setMnemonic('g');
JMenuItem jMenuItemStart = new JMenuItem("開始(S)");
jMenuItemStart.setMnemonic('s');
jMenuItemStart.addActionListener(this);
JMenuItem jMenuItemExit=new JMenuItem("退出(E)");
jMenuItemExit.setMnemonic('e');
jMenuItemExit.addActionListener(this);
jMenuGame.add(jMenuItemStart);
jMenuGame.add(jMenuItemExit);
//初始化按鈕並設置快捷鍵和添加監聽器
JButton jChoice=new JButton("選圖(X)");
jChoice.setMnemonic('x');
jChoice.addActionListener(this);
jPreview=new JButton("預覽(P)");
jPreview.setMnemonic('p');
jPreview.addActionListener(this);
//將菜單和按鈕添加到菜單條中
jMenuBar.add(jMenuGame);
jMenuBar.add(jChoice);
jMenuBar.add(jPreview);
//將菜單條設為該窗口的主菜單
fr.setJMenuBar(jMenuBar);
//將主面板添加到該窗口的容器中。
container.add(j);
//設置大小
fr.setSize(315,360 );
fr.setVisible(true);
//設置默認關閉方式。
fr.setDefaultCloseOperation(3);
}
/**
* 事件處理函數。
*/
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand()=="開始(S)")
{
j.Start();
}
if(e.getActionCommand()=="預覽(P)")
{
j.setVisible(false);
panel=new JPanel();
Icon icon=new ImageIcon("pictrue/pic"+"_"+MainPanel.pictureID+".jpg");
label=new JLabel(icon);
label.setBounds(300, 300, 0, 0);
panel.add(label);
panel.setSize(300, 300);
panel.setVisible(true);
this.container.add(panel);
jPreview.setText("返回(P)");
}
if(e.getActionCommand()=="返回(P)")
{
panel.setVisible(false);
j.setVisible(true);
j.repaint();
jPreview.setText("預覽(P)");
}
if(e.getActionCommand()=="退出(E)")
{
System.exit(0);
}
if(e.getActionCommand()=="選圖(X)")
{
//初始化選擇框,並提供選擇。
Choice pic = new Choice();
pic.add("七里香");
pic.add("依然范特西");
pic.add("八度空間");
pic.add("十一月的肖邦");
pic.add("魔傑座");
pic.add("葉惠美");
pic.add("我很忙");
int i=JOptionPane.showConfirmDialog(this, pic, "選擇圖片", JOptionPane.OK_CANCEL_OPTION);
if(i==JOptionPane.YES_OPTION)
{
//選擇圖片
MainPanel.pictureID=pic.getSelectedIndex()+1;
j.removeAll();
j.reLoadPicture();
j.repaint();
}
}
}
}
㈡ 請問在java中怎麼使用jna 獲取說有的窗口句柄
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.HWND;
public class Demo1 {
public static void main(String[] args) {
name();
}
//窗體句柄的截獲
public static void name() {
// HWND hwnd = User32.INSTANCE.FindWindow(null, "列印");
String zh="列印";
HWND hwndDialog = User32.INSTANCE.FindWindow(null,zh);
if(hwndDialog==null) {
System.err.println("沒有找到窗體");
}else {
System.err.println("找到窗體"+hwndDialog);
//HWND root, String className, long timeout, TimeUnit unit,String caption
// List<HWND> hwndButton= Win32Util.findHandleByClassNameJKSD(hwndDialog,"Button", 10, TimeUnit.SECONDS,"列印");
// for (HWND hwnd : hwndButton) {
// System.err.println(hwnd);
// }