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

📄 jmsdrawdemo.java

📁 weblogic应用全实例
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      offScreenGraphics = offScreenImage.getGraphics();
      //所有点
      Enumeration pts = points.elements();
      while(pts.hasMoreElements()) {
      	//显示所有点
      	Point pt = (Point) pts.nextElement();
        offScreenGraphics.drawImage(image, ((pt.x * d.width) / 1000) - (imageWidth/2), 
                                    ((pt.y * d.height) / 1000) -(imageHeight/2), this);
      }

      pts = pointsSent.elements();
      while(pts.hasMoreElements()) {
        Point pt = (Point) pts.nextElement();
        offScreenGraphics.setColor(Color.darkGray);
        offScreenGraphics.fillOval(((pt.x * d.width) / 1000)-5, ((pt.y * d.height) / 1000)-5, 10, 10);
      }
    }
    //显示整个位图
    g.drawImage(offScreenImage, 0, 0, this);

  }
 /**
   * 获取坐标
   */

  public Dimension getPreferredSize()
  {
    return new Dimension(300,300);
  }


  /*******************************************************************
   *  更新位图
   *******************************************************************/
  private void updateImage(Point pt)
  {
    points.addElement(pt);
    pointsSent.removeElement(pt);
    if (offScreenGraphics != null) {
      offScreenGraphics.drawImage(image, ((pt.x * d.width) / 1000) - (imageWidth/2), 
                                  ((pt.y * d.height) / 1000) -(imageHeight/2), this);
    }
    repaint();
  }



  /*******************************************************************
   *   响应鼠标按动事件
   *   @参数 e 鼠标事件
   *******************************************************************/

  public void mousePressed(MouseEvent e) {}
  /*******************************************************************
   *   鼠标点击时响应
   *   @参数 e 鼠标事件
   *******************************************************************/
  public void mouseClicked(MouseEvent e) {}
  /*******************************************************************
   *   鼠标进入时响应
   *   @参数 e 鼠标事件
   *******************************************************************/
  public void mouseEntered(MouseEvent e) {}
  /*******************************************************************
   *   鼠标出去时响应
   *   @参数 e 鼠标事件
   *******************************************************************/
  public void mouseExited(MouseEvent e) {}
  /**
   * 释放鼠标时相应
   *   @参数 e 鼠标事件
   */
  public void mouseReleased(MouseEvent e) 
  {
    int x = (e.getX() * 1000) / d.width;
    int y = (e.getY() * 1000) / d.height;

    if (isTransacted) {
      commitButton.setEnabled(true);
      rollbackButton.setEnabled(true);
    }
    offScreenGraphics.setColor(Color.darkGray);
    offScreenGraphics.fillOval(e.getX() - 5, e.getY()-5, 10, 10);
    publishPoint(x, y);
    repaint();
  }

  private void setTransacted(boolean transacted)
  {
    if (transacted != isTransacted) {
      if (! transacted) {
        doRollback();
      }
      isTransacted = transacted;
    }
  }


  /*******************************************************************
   *   监听并响应按下按钮
   *   @参数 ev action 事件
   *******************************************************************/

  public void actionPerformed(ActionEvent ev) 
  {
    if (ev.getSource() == transactedCheckBox) {
      setTransacted(transactedCheckBox.isSelected());
      return;
    }
    if (ev.getSource() == commitButton) {
      doCommit();
      return;
    }
    if (ev.getSource() == rollbackButton) {
      doRollback();
      return;
    }
    if (ev.getSource() == clearButton) {
      publishClear();
      return;
    }
    if (ev.getSource() == quitButton) {
      exit();
    }
  }
  //事务触发
  private void doCommit() 
  {
    try {
      sessionTX.commit();
      commitButton.setEnabled(false);
      rollbackButton.setEnabled(false);
      repaint();
    } catch (JMSException jmse) {
      jmse.printStackTrace();
    }
  }

  private void doRollback() 
  {
    try {
      sessionTX.rollback();
      pointsSent.removeAllElements();
      commitButton.setEnabled(false);
      rollbackButton.setEnabled(false);
      offScreenImage = null;
      repaint();
    } catch (JMSException jmse) {
      jmse.printStackTrace();
    }
  }

  //清屏
  private void clearScreen() 
  {
    if (isTransacted) {
      doRollback();
    }
    pointsSent.removeAllElements();
    points.removeAllElements();
    offScreenImage = null;
    repaint();
  }

  //发送模式
  private int deliveryMode() 
  {
    return persistentCheckBox.isSelected()
      ? DeliveryMode.PERSISTENT
      : DeliveryMode.NON_PERSISTENT;
  }


  /*******************************************************************
   *  加载图像
   *  @参数 resourceName	资源名字
   *******************************************************************/
  public Image loadImage(String resourceName)
  {
    try {
      java.net.URL url = getClass().getResource(resourceName);
      java.awt.Toolkit tk = java.awt.Toolkit.getDefaultToolkit();
      image = tk.createImage((java.awt.image.ImageProducer) url.getContent());
      synchronized(this) {
        imageWidth = image.getWidth(this);
        imageHeight = image.getHeight(this);
        if (imageWidth <= 0 || imageHeight <= 0) {
          imageLoaded = false;
          while(!imageLoaded) {
            wait();
          }
        }
        imageWidth = image.getWidth(this);
        imageHeight = image.getHeight(this);
      }
      return image;
    } catch(Exception e) {
      e.printStackTrace();
      return null;
    }
  }

  /**
    * 更新位图
    * @参数 image	要更新的位图
    * @参数 infoFlags  信息标记
    * @参数 x 		X 坐标
    * @参数 y	Y 坐标
    * @参数 width	宽度
    * @参数 width	高度
    */
  public boolean imageUpdate(Image image, int infoFlags,
                             int x, int y, int width, int height)
  {
    if(image == this.image &&
       (infoFlags & ImageObserver.ALLBITS) == ImageObserver.ALLBITS) {
      synchronized(this) {
        imageLoaded = true;
        notify();
      }
      return false;
    }
    return true;
  }

  

  /*******************************************************************
   *  main() 方法
   *  @参数 argv[]	WebLogic服务器URL
   *******************************************************************/
  public static void main(String argv [])
  {
    String url = null;
    String durableSubscriberID = null;
    String frameTitle = "JMSDrawDemo";

    if (argv.length > 0) {
      url = argv[0];
    } else {
      System.out.println("用法: java examples.jms.drawdemo.JMSDrawDemo <url> [DurableSubscriberID]");
      System.exit(1);
    }

    if (argv.length > 1) {
      durableSubscriberID = argv[1];
      frameTitle += " ("+durableSubscriberID + ")";
    }
    //主窗口类
    final JFrame frame = new JFrame(frameTitle);
    frame.setForeground(Color.black);
    frame.setBackground(Color.lightGray);
    frame.getContentPane().setLayout(new BorderLayout());
    
    try {
      final JMSDrawDemo demo = 
        new JMSDrawDemo(frame, url, durableSubscriberID);

      WindowListener l = new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
          demo.exit();
        }
      };
      frame.addWindowListener(l);
    } catch (NamingException ne) {
      System.out.println("Error attaching to server, url=" + url);
      System.exit(0);
    } catch (JMSException jmse) {
      jmse.printStackTrace();
      System.exit(0);
    }

    frame.pack();
    frame.setVisible(true);
  }

  // 返回JNDI初始化上下文

  private static InitialContext getInitialContext(String url)
       throws NamingException
  {
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
    env.put(Context.PROVIDER_URL, url);
    return new InitialContext(env);
  }

}




⌨️ 快捷键说明

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