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

📄 chatutil.java

📁 借的别人的 只想在这里下点东西
💻 JAVA
字号:
package at.ac.uni_linz.tk.vchat;

import java.awt.*;
import java.util.*;
import java.text.*;
import java.net.*;
import java.applet.*;


/**
 * Provides frequently needed utility methods.
 *
 * @author      Arno Huetter
 * (C)opyright by the Institute for Computer Science, Telecooperation Department, University of Linz
 */

public class ChatUtil extends Object {


/**
 * Returns the distance between two Points.
 *
 * @param point1      the first point
 * @param point2      the second point
 */

  public static int getDistance(Point point1, Point point2) {
    return (int)Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2));
  }


/**
 * Brightens up a given color.
 *
 * @param color      the color to be brightened
 */

  public static Color brighten(Color color) {
    return new Color((255 + color.getRed()) / 2, (255 + color.getGreen()) / 2, (255 + color.getBlue()) / 2);
  }


/**
 * Adds up two angles.
 *
 * @param angle1      the first angle
 * @param angle2      the second angle
 */

  public static int addAngle(int angle1, int angle2) {
    return (angle1 + angle2) % 360;
  }


/**
 * Substracts one angle from another angle.
 *
 * @param angle1      the angle to substract from
 * @param angle2      the angle to be substracted
 */

  public static int subAngle(int angle1, int angle2) {
    int angle;
    return Math.abs(angle1 - angle2 + 360) % 360;
  }


/**
 * Returns the mean value of two angles.
 *
 * @param angle1      the first angle
 * @param angle2      the second angle
 */

  public static int getMiddleAngle(int angle1, int angle2) {
    int angle;
    angle = (angle1 + angle2) / 2 % 360;
    return Math.abs(angle1 - angle2) > 180 ? (angle + 180) % 360 : angle;
  }


/**
 * Returns the angle bewteen two Points (< 180 degrees).
 *
 * @param point1      the first Point
 * @param point2      the second Point
 */

  public static int getAngle(Point point1, Point point2) {
    return ((int)(Math.atan2((double)(point1.y - point2.y), (double)(point2.x - point1.x)) / Math.PI * 180.0) + 360) % 360;
  }


/**
 * Returns true if one angle lies in bewteen two given angles.
 *
 * @param angle           the angle to be checked
 * @param angleStart      the minimum angle
 * @param angleStop       the maximum angle
 */

  public static boolean inAngleRange(int angle, int angleStart, int angleStop) {
    if (angleStart > angleStop)
      return (!inAngleRange(angle, angleStop, angleStart));
    else
      return (angle >= angleStart && angle <= angleStop);
  }


/**
 * Paints a pattern onto a given Graphics conext.
 *
 * @param g                the Graphics context
 * @param clipRect         the clipping area
 * @param colorParam       the color in which to paint
 */

  public static void paintPattern(Graphics g, Rectangle clipRect, Color colorParam) {
    Rectangle previousClipRect;
    Color previousColor;

    previousClipRect = (Rectangle)(g.getClip());
    previousColor = g.getColor();

    g.setClip(clipRect);
    g.setColor(colorParam);

    for (int i = - clipRect.height; i <= clipRect.width; i += 2) {
      g.drawLine(clipRect.x + i, clipRect.y, clipRect.x + i - clipRect.height, clipRect.y + clipRect.height);
      g.drawLine(clipRect.x + i, clipRect.y, clipRect.x + i + clipRect.height, clipRect.y + clipRect.height);
    }

    g.setClip(previousClipRect);
    g.setColor(previousColor);
  }


/**
 * Adds a Component to a Container's GridBagLayout.
 *
 * @param containerParam         the Container to add to
 * @param componentParam         the Comnponent to be added
 * @param constraintsParam       the GridBagConstraints to use for adding
 */

  public static void addWithConstraints(Container containerParam, Component componentParam, GridBagConstraints constraintsParam) {
    if (!(containerParam.getLayout() instanceof GridBagLayout))
      containerParam.setLayout(new GridBagLayout());
    ((GridBagLayout)containerParam.getLayout()).setConstraints(componentParam, constraintsParam);
    containerParam.add(componentParam);
  }

/**
 * Adds a Component to the beginning of a new row in a Container's GridBagLayout.
 *
 * @param containerParam      the Container to add to
 * @param componentParam      the Comnponent to be added
 */

  public static void addWithBeginningConstraints(Container containerParam, Component componentParam, Insets insetsParam) {
    GridBagConstraints constraints;
    constraints = new GridBagConstraints();
    constraints.anchor = GridBagConstraints.NORTHWEST;
    constraints.insets = new Insets(insetsParam.top / 2, insetsParam.left / 2, insetsParam.bottom / 2, insetsParam.right / 2);
    constraints.fill = GridBagConstraints.BOTH;
    addWithConstraints(containerParam, componentParam, constraints);
  }


/**
 * Adds a Component to the beginning of a new row in a Container's GridBagLayout.
 *
 * @param containerParam      the Container to add to
 * @param componentParam      the Comnponent to be added
 */

  public static void addWithBeginningConstraints(Container containerParam, Component componentParam) {
    addWithBeginningConstraints(containerParam, componentParam, ChatRepository.INSETS);
  }


/**
 * Adds a Component to the remainings of a row in a Container's GridBagLayout.
 *
 * @param containerParam      the Container to add to
 * @param componentParam      the Comnponent to be added
 */

  public static void addWithRemainingConstraints(Container containerParam, Component componentParam, Insets insetsParam) {
    GridBagConstraints constraints;
    constraints = new GridBagConstraints();
    constraints.anchor = GridBagConstraints.NORTHWEST;
    constraints.insets = new Insets(insetsParam.top / 2, insetsParam.left / 2, insetsParam.bottom / 2, insetsParam.right / 2);
    constraints.weightx = 1.0;
    constraints.fill = GridBagConstraints.BOTH;
    constraints.gridwidth = GridBagConstraints.REMAINDER;
    addWithConstraints(containerParam, componentParam, constraints);
  }


/**
 * Adds a Component to the remainings of a row in a Container's GridBagLayout.
 *
 * @param containerParam      the Container to add to
 * @param componentParam      the Comnponent to be added
 */

  public static void addWithRemainingConstraints(Container containerParam, Component componentParam) {
    addWithRemainingConstraints(containerParam, componentParam, ChatRepository.INSETS);
  }


/**
 * Returns a formated Date value (short format).
 *
 * @param dateParam      the Date to be formatted
 */

  public static String dateToTimeString(Date dateParam) {
    return DateFormat.getTimeInstance(DateFormat.SHORT).format(dateParam);
  }


/**
 * Rotates a point around another point by a given angle.
 *
 * @param centerPoint      the center Point of the rotation
 * @param rotatePoint      the Point to be rotated
 * @param rotateAngle      the angle of the rotation
 */

  public static Point rotatePoint(Point centerPoint, Point rotatePoint, int rotateAngle) {
    int angle, distance;
    distance = getDistance(centerPoint, rotatePoint);
    angle = addAngle(getAngle(centerPoint, rotatePoint), rotateAngle);
    rotatePoint.x = centerPoint.x + (int)(Math.cos(angle * Math.PI / 180.0) * distance);
    rotatePoint.y = centerPoint.y + (int)(Math.sin(angle * Math.PI / 180.0) * distance);
    return rotatePoint;
  }


/**
 * Returns the signum of a given double value.
 *
 * @param x      the double value to calculate the signum of
 */

  public static double sgn(double x) {
    return (x != 0.0) ? Math.abs(x) / x : 0.0;
  }


/**
 * Converts an array of bytes to an array of ints.
 *
 * @param byteArray      the byte array to be converted
 */

  public static int[] byteArrayToIntArray(byte[] byteArray) {
    int[] intArray = new int[byteArray.length];
    for (int i = 0; i < byteArray.length; i++) {
      intArray[i] = (int)byteArray[i];
    }
    return intArray;
  }


/**
 * Converts an array of ints to an array of bytes.
 *
 * @param intArray      the int array to be converted
 */

  public static byte[] intArrayToByteArray(int[] intArray) {
    byte[] byteArray = new byte[intArray.length];
    for (int i = 0; i < intArray.length; i++) {
      byteArray[i] = (byte)intArray[i];
    }
    return byteArray;
  }


/**
 * Loads an image from a given URL.
 *
 * @param url      the image's URL
 */

  public static Image getImage (URL url) {
    Image image;
    Applet applet;

    applet = new Applet();
    MediaTracker tracker = new MediaTracker(applet);

    image = applet.getToolkit().getImage(url);
    tracker.addImage(image, 0);

    try {
      tracker.waitForAll();
    }
    catch (InterruptedException e)
    { }

    return image;
  }


/**
 * Loads an image with a given filename from the server.
 *
 * @param name      the image's filename
 */

  public static Image getImage (String name) {
    Image image;
    Applet applet;

    applet = new Applet();
    MediaTracker tracker = new MediaTracker(applet);

    image = applet.getToolkit().getImage(name);
    tracker.addImage(image, 0);

    try {
      tracker.waitForAll();
    }
    catch (InterruptedException e)
    { }
    return image;
  }


/**
 * Fills up a String to a certain length.
 *
 * @param sourceString      the original String
 * @param fillChar          the char to use for filling up the String
 * @param length            the length of the String to be returned
 */

  public static String pad(String sourceString, char fillChar, int length) {
    return pad (sourceString, fillChar, length, true);
  }


/**
 * Fills up a String to a certain length.
 *
 * @param sourceString        the original String
 * @param fillChar            the char to use for filling up the String
 * @param length              the length of the String to be returned
 * @param orientatedLeft      true if the orginal String should be placed at the end
 */

  public static String pad(String sourceString, char fillChar, int length, boolean orientatedLeft) {
    String workString;
    workString = sourceString;
    if (workString.length() >= length)
      return workString.substring(0, length);
    else {
      while(workString.length() < length) {
        if (orientatedLeft)
          workString += fillChar;
        else
          workString = fillChar + workString;
      }
      return workString;
    }
  }

  public static int getInt(String string) {
    try {
      return new Integer(string).intValue();
    }
    catch (Exception excpt) {
      return 0;
    }
  }

}

⌨️ 快捷键说明

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