?? jqframe.java
字號:
/**
*##############################################################################
*
* [ 項目名 ] :
* [ 公司名 ] : SunshineSOFT
* [ 模塊名 ] : 防QQ的自縮窗口
* [ 文件名 ] : JQFrame.java
* [ 相關文件 ] :
* [ 文件實現功能] : 窗口靠近屏幕上方時,自動縮起
* [ 作者 ] : 顧俊
* [ 版本 ] : 1.0
* ----------------------------------------------------------------------------
* [ 備注 ] :
* ----------------------------------------------------------------------------
* [ 修改記錄 ] :
*
* [ 日 期 ] [版本] [修改人] [修改內容]
* 2006/04/29 1.0 顧俊 創建
* ##--------------------------------------------------------------------------
* 版權所有(c) 2006-2007, SunshineSOFT Corporation
* --------------------------------------------------------------------------##
*
* [ 函數說明 ] :
*
* [## public Login() {} ]:
* 功能: JQFrame 的構造函數
*
* [## public void setSize(int w, int h) {} ]:
* 功能: 設置窗口尺寸
*
* [## public void setStep(int s) {} ]:
* 功能: 設置的窗口動作步長
*
*
* [ 遺留問題 ] :
*
*##############################################################################
*/
package com.sunshine.sunsdk.swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import com.sunshine.sunsdk.swing.*; //公共類包
import com.sunshine.sunsdk.system.*;
public class JQFrame
extends JFrame
implements MouseListener {
private boolean winState = true; //窗口伸縮標志
private int sunWidth = 200; //窗口默認寬度
private int minHieght = 5; //窗口縮起后的高度
private int maxHieght = 506; //窗口展開后的高度
private int step = 15; //窗口動作步長
/**=======================================================================**
* [## public JQFrame() {} ]:
* 參數 :無
* 返回值 :無
* 修飾符 :public
* 功能 :JQFrame 的構造函數
**=======================================================================**
*/
public JQFrame() {
super("JQFrame");
//對窗口加鼠標監聽
this.addMouseListener(this);
//設置窗口左上角圖標
ImageIcon ia = new ImageIcon("pic/ico.gif");
this.setIconImage(ia.getImage());
//設置窗口默認大小
this.setBounds(55, 55, sunWidth, maxHieght);
//設置窗口不可改變大小
this.setResizable(false);
}
/**=======================================================================**
* [## public void setSize(int w, int h) {} ]:
* 參數 :int w 表示窗口寬度 int h 表示窗口高度
* 返回值 :無
* 修飾符 :public
* 功能 :設置窗口尺寸
**=======================================================================**
*/
public void setSize(int w, int h) {
sunWidth = w;
maxHieght = h;
super.setSize(w, h);
}
/**=======================================================================**
* [## public void setStep(int s) {} ]:
* 參數 :int s 表示要設置的窗口動作步長
* 返回值 :無
* 修飾符 :public
* 功能 :設置窗口的動作步長
**=======================================================================**
*/
public void setStep(int s) {
if(s > 4) {
step = s; //設置窗口動作步長
}//Endif
}
/**=======================================================================**
* MouseListener 監聽
**=======================================================================**
*/
public void mouseClicked(MouseEvent me) {
}
public void mousePressed(MouseEvent me) {
}
public void mouseReleased(MouseEvent me) {
if(this.getY() < 0) {
//如果窗口的Y坐標小于0,則將其置0,縮起窗口
this.setLocation(this.getX(), 0);
for (int i = this.getHeight(); i > minHieght; i-=step) {
if(i - minHieght <= step) {
i = minHieght;
}//Endif
super.setSize(this.getWidth(), i);
}//Endfor
winState = false;
}//Endif
}
public void mouseEntered(MouseEvent me) {
if(me.getSource() == this) { //如果鼠標進入窗口
if(this.getY() == 0 && !winState) { //如果窗口在屏幕北邊且已縮起
//展開窗口
for (int i = minHieght; i < maxHieght; i+=step) {
if(i + step >= maxHieght) {
i = maxHieght;
}//Endif
super.setSize(this.getWidth(), i);
}//Endfor
winState = true;
}//Endif
}//Endif
}
public void mouseExited(MouseEvent me) {
if(me.getSource() == this) { //如果鼠標移出窗口
int mx = me.getX();
int my = me.getY();
//如果是在窗口內部控件上則返回
if(mx > 0 && mx < sunWidth && my < maxHieght) {
return;
}//Endif
if(this.getY() == 0 && winState) { //如果窗口在屏幕北邊且已展開
//縮起窗口
for (int i = maxHieght; i >= minHieght; i-=step) {
if(i - minHieght <= step) {
i = minHieght;
}//Endif
super.setSize(this.getWidth(), i);
}//Endfor
winState = false;
}//Endif
}//Endif
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -