⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windowminbox.java

📁 追加最小化按钮: 利用JNI
💻 JAVA
字号:
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class WindowMinbox extends JDialog {

	private JPanel jContentPane = null;
	private JTextField jtxtName = null;
	private JButton jbtnOK = null;
	private String  strTitle = "Add Minbox To JDialog";
    private static final long serialVersionUID = -333050846950090987L;

	/**
	 * This method initializes jtxtName	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJtxtName() {
		if (jtxtName == null) {
			jtxtName = new JTextField();
			jtxtName.setBounds(new java.awt.Rectangle(105,78,255,30));
			jtxtName.setToolTipText("Enter Win-Tiltle");
		}
		return jtxtName;
	}

	/**
	 * This method initializes jbtnOK	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJbtnOK() {
		if (jbtnOK == null) {
			jbtnOK = new JButton();
			jbtnOK.setBounds(new java.awt.Rectangle(105,165,255,34));
			jbtnOK.setToolTipText("Click to Add Minbox to JDialog");
			jbtnOK.setText("Add Minbox");
			jbtnOK.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					System.out.println("mouseClicked()"); 
					String str = jtxtName.getText().trim();
					addMinboxToJDialog(str);
				}
			});
		}
		return jbtnOK;
	}
	
	/**
	 * Add Minbox to JDialog Window
	 * @param strTitle : window-title
	 */
	private void addMinboxToJDialog(String sTitle){
		if ( sTitle == null || sTitle.length()<=0) {
			sTitle = this.strTitle;
		}
		
		// change window style by JNI
		boolean bRet = changeWindowStyle(sTitle);
		System.out.println("Result: [" + bRet + "]");
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WindowMinbox winMinbox = new WindowMinbox();
		winMinbox.setVisible(true);
	}

	/**
	 * This is the default constructor
	 */
	public WindowMinbox() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(468, 343);
		this.setLocation(400, 333);
		this.setTitle(strTitle);
		this.setResizable(false);
		this.setContentPane(getJContentPane());
		this.addWindowListener(new java.awt.event.WindowAdapter() {
			public void windowClosing(java.awt.event.WindowEvent e) {
				System.out.println("window is Closing");
				System.exit(0);
			}
			public void windowIconified(java.awt.event.WindowEvent e) {
				System.out.println("min-window-change");
			}
			public void windowDeiconified(java.awt.event.WindowEvent e) {
				System.out.println("restor-window-size");
			}
		});
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJtxtName(), null);
			jContentPane.add(getJbtnOK(), null);
		}
		return jContentPane;
	}

	//JNI Interface
	static
	{
		try
		{
			System.loadLibrary("WinMinbox");
		}
		catch(UnsatisfiedLinkError e)
		{
			System.out.println( "Cannot load library: \n " + e.getMessage() );
		}
	}
	public static native boolean changeWindowStyle(String name);
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -