자바 모방 qq 메시지 알림 상자

3609 단어
참조 패키지:
swt.jar
주 클래스:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;

public class Z {
	
	public static void main(String[] args) {

		final Display display = new Display();
		final Shell shell = new Shell();
		shell.setText("aaa");
		shell.setSize(250, 150);

		
		shell.addShellListener(new ShellAdapter() {
			   @Override
			   public void shellClosed(ShellEvent e) {
			      MessageBox mb = new MessageBox(shell,SWT.ICON_QUESTION | SWT.OK| SWT.CANCEL);
			                  mb.setText("  ");
			                  mb.setMessage("      ?");
			                 int rc = mb.open();
			                        if (e.doit == (rc == SWT.OK)) {
			                        System.exit(0);
			                   }
			                  else if(e.doit == (rc == SWT.CANCEL)) {
			                    return;
			                   }
			   }
			  });

		
		

		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("    ");
				popup.start();
			}
		});
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
		display.dispose();
	}
}

방법 클래스:
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(String message) {
		// TODO Auto-generated constructor stub
		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();
			}
		}
	}
}
shell              :

좋은 웹페이지 즐겨찾기