700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java qq好友上线 好友面板更新如何实现_Java实现类MSN QQ好友上线通知界面

java qq好友上线 好友面板更新如何实现_Java实现类MSN QQ好友上线通知界面

时间:2022-12-24 14:59:02

相关推荐

java qq好友上线 好友面板更新如何实现_Java实现类MSN QQ好友上线通知界面

// Test.java

//主界面,其中只有一个button,当点击时调用Popup在右下角显示像MSN和QQ一样的popup界面。

import org.eclipse.swt.SWT;

import org.eclipse.swt.events.SelectionAdapter;

import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class Test {

public static void main(String[] args) {

final Display display = new Display();

Shell shell = new Shell();

shell.setText("aaa");

shell.setSize(250, 150);

final Button button = new Button(shell, SWT.NONE);

button.setBounds(50, 20, 100, 25);

button.setText("button");

//监听button的事件,当用户点击时调用Popup类显示popup界面。

button.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

//实例化popup类,构造函数为popup界面中出现的提示信息。

Popup popup = new Popup("您的好友xxx上线了。");

popup.start();

}

});

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

display.dispose();

}

}

// Popup.java

//实现像MSN,QQ一样的好友上线通知popup

import org.eclipse.swt.SWT;

import org.eclipse.swt.graphics.Rectangle;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Text;

public class Popup extends Thread {

Shell shell;

protected int moveStep = 2; //每次移动的pixel

protected int upPosition; //能移动到的最上面坐标

protected int downPosition; //当前popup的边框坐标

protected int leftPosition; //popup左边边框坐标 public Popup(final String message) {

shell = new Shell(SWT.ON_TOP);

Text text = new Text(shell, SWT.MULTI | SWT.WRAP);

text.setBounds(10, 20, 180, 80);

text.setBackground(shell.getBackground());

text.setText(message);

//取屏莫大小

Rectangle area = Display.getDefault().getClientArea();

upPosition = area.height - 100;//计算出popup界面在屏幕显示的最高位置

downPosition = area.height + 100;//计算出popup界面的初始位置

leftPosition = area.width - 180;

shell.setSize(180, 100);

//初始化popup位置

shell.setLocation(leftPosition, downPosition);

shell.open();

}

public void run() {

Display display = shell.getDisplay();

while (true) {

try {

Thread.sleep(10);

//判断当前位置是否小于能出现的最高位置,小于的话就说明还可以向上移动。

if ((downPosition - moveStep) > upPosition) {

display.asyncExec(new Runnable() {

public void run() {

shell.setLocation(leftPosition, downPosition- moveStep);

downPosition -= moveStep;

}

});

//此时已经移动到了最高位置,显示5秒钟后,关闭窗口并退出。

} else {

Thread.sleep(5000);

display.asyncExec(new Runnable() {

public void run() {

shell.dispose();

}

});

}

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。