/*下面是我写的程序,是模仿千千静听的窗口粘合,大部分效果都可以做出来.主要问题有两个,一个是我的窗体
粘合时会滞留下残像.是不是我的代码写的不够好呢?二是千千静听可以跟任务发生粘合,无论任务栏大小.这一
点是怎么做到的呢?刚学JAVA关于代码方格方面希望大家多多赐教.谢谢
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class test extends JFrame{
int x=150,y=200;//窗体的位置
int xs,ys;//窗体的宽高
int w,h;//屏幕的宽高
String a="x:"+x+"\ny:"+y;
JLabel l=new JLabel(a);//显示当前坐标
test (){
super("粘合测试");
}
void go(){
Dimension size;
size=Toolkit.getDefaultToolkit().getScreenSize();//得到当前屏幕大小
h=(int)size.getHeight();
w=(int)size.getWidth();
setLayout(new FlowLayout());
add(l);
pack();
setLocation(x,y);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
addComponentListener(new ComponentAdapter(){
public void componentMoved(ComponentEvent e){
xs=getWidth();ys=getHeight();
x=getX();y=getY();
a="x:"+x+"\ny:"+y;
l.setText(a);
if(x<15&&x>-10)
setLocation(0,y);
else//如果不用else设定优先,在特殊位置会出现问题.但千千静听不会这样.
if(y<15&&x>-10)
setLocation(x,0);
else if((w-(x+xs))<15&&(w-(x+xs))>-10)
setLocation(w-xs,y);
else if((h-(y+ys))<15&&(h-(y+ys))>-10)
setLocation(x,h-ys);
}
});
setVisible(true);


}

public static void main(String args[]){

new test().go();
}
}