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

📄 mysleepframe.java

📁 java+sql 图书管理系统
💻 JAVA
字号:
package MyLibraryok.MyMain;


import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class MySleepFrame extends JComponent implements ComponentListener,
  WindowFocusListener {
 private JFrame frame;
 private boolean isHiding = false, isShowing = false, start = false;
 private Image background;
 private Point p;



                    //[color=Red]//获得当前屏幕快照[/color]
 public void updateBackground() {
  try {
   Robot rbt = new Robot();
   Toolkit tk = Toolkit.getDefaultToolkit();
   Dimension dim = tk.getScreenSize();
   background = rbt.createScreenCapture(new Rectangle(0, 0, (int) dim
     .getWidth(), (int) dim.getHeight()));
  } catch (Exception ex) {
   // p(ex.toString());
   // 此方法没有申明过 ,因为无法得知上下文 。因为不影响执行效果 ,先注释掉它 ex.printStackTrace();
  }
 }
               //    [color=Red]  //将窗口掉离出屏幕以获得纯粹的背景图象[/color]
 public void refresh() {
  if (start == true) {
   this.updateBackground();
   frame.setLocation(p);
   if (p.x < 0 || p.y < 0)
    frame.setLocation(0, 0);
   this.repaint();
  }
 }
 public void componentHidden(ComponentEvent e) {
  // TODO Auto-generated method stub
  System.out.println("Hidden");
 }
                  //   [color=Red] //窗口移动时[/color]
 public void componentMoved(ComponentEvent e) {
  // TODO Auto-generated method stub
  System.out.println("moved");
  this.repaint();
 }
                 //   [color=Red] //窗口改变大小时[/color]
 public void componentResized(ComponentEvent e) {
  // TODO Auto-generated method stub
  System.out.println("resized");
  this.repaint();
 }
 public void componentShown(ComponentEvent e) {
  // TODO Auto-generated method stub
  System.out.println("shown");
 }
                //    [color=Red] //窗口得到焦点后,用refresh()方法更新界面[/color]
 public void windowGainedFocus(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("gainedFocus");
  refresh();
  start = false;
 }
                  //  [color=Red] //窗口失去焦点后,将其移出屏幕[/color]
 public void windowLostFocus(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("lostFocus");
  if (frame.isShowing() == true) {
   System.out.println("visible");
  } else {
   System.out.println("invisible");
  }
  start = true;
  p = frame.getLocation();
  frame.setLocation(-2000, -2000);
 }
 public MySleepFrame(JFrame frame) {
  super();
  this.frame = frame;

  updateBackground();
  this.setSize(200, 120);
  this.setVisible(true);
  frame.addComponentListener(this);
  frame.addWindowFocusListener(this);
  // TODO Auto-generated constructor stub
 }
                    //绘制外观,注意,其中 pos,offset 是为了将特定部分的图象贴到窗口上
 public void paintComponent(Graphics g) {
  Point pos = this.getLocationOnScreen();
  Point offset = new Point(-pos.x, -pos.y);
  g.drawImage(background, offset.x, offset.y, null);
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try {
   // UIManager.setLookAndFeel("org.fife.plaf.Office2003.Office2003LookAndFeel");
   // UIManager.setLookAndFeel("org.fife.plaf.OfficeXP.OfficeXPLookAndFeel");
   // UIManager.setLookAndFeel("org.fife.plaf.OfficeXP.OfficeXPLookAndFeel");
  // UIManager.setLookAndFeel(new SubstanceLookAndFeel());
   //UIManager.setLookAndFeel(new SmoothLookAndFeel());
   //UIManager.setLookAndFeel(new QuaquaLookAndFeel());
  // UIManager.put("swing.boldMetal", false);
   if (System.getProperty("substancelaf.useDecorations") == null) {
    JFrame.setDefaultLookAndFeelDecorated(true);
    //JDialog.setDefaultLookAndFeelDecorated(true);
   }
   System.setProperty("sun.awt.noerasebackground", "true");
  // SubstanceLookAndFeel.setCurrentTheme(new SubstanceLightAquaTheme());
   // UIManager.setLookAndFeel("org.fife.plaf.VisualStudio2005.VisualStudio2005LookAndFeel");
  } catch (Exception e) {
   System.err.println("Oops!  Something went wrong!");
  }
  JFrame frame = new JFrame();
  MySleepFrame t = new MySleepFrame(frame);
  t.setLayout(new BorderLayout());


//  JButton button = new JButton("This is a button");
//  t.add("North", button);
  JLabel label = new JLabel(new ImageIcon("image/but.png"));
  t.add("South", label);
  frame.setUndecorated(false);
  frame.getContentPane().add("Center", t);

 frame.addMouseListener(new MouseAdapter() { //窗口的鼠标事件处理
           public void mousePressed(MouseEvent event) { //点击鼠标
               triggerEvent(event); //调用triggerEvent方法处理事件
           }

           public void mouseReleased(MouseEvent event) { //释放鼠标
               triggerEvent(event);
           }

           private void triggerEvent(MouseEvent event) { //处理事件
               if (event.isPopupTrigger()) { //如果是弹出菜单事件(根据平台不同可能不同)
                  // popupMenuMouse.show(event.getComponent(), event.getX(),
                    //                   event.getY()); //显示菜单
                    JOptionPane.showMessageDialog(null,"","",JOptionPane.YES_NO_OPTION);
               }
           }
       });


  frame.pack();
  frame.setResizable(false);
  frame.setSize(150, 150);
  frame.show();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//  // t.start=true;
 }


}

⌨️ 快捷键说明

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