Guest User

Untitled

a guest
Nov 23rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. /**
  2. *
  3. */
  4. package customGui;
  5.  
  6. import gui.SkinListerPanel;
  7. import java.awt.Color;
  8. import java.awt.Component;
  9. import java.awt.Font;
  10. import java.awt.FontMetrics;
  11. import java.awt.Graphics;
  12. import java.awt.Graphics2D;
  13. import java.awt.Insets;
  14. import java.awt.MouseInfo;
  15. import java.awt.RenderingHints;
  16. import java.awt.event.MouseEvent;
  17. import java.awt.event.MouseListener;
  18. import javax.swing.border.AbstractBorder;
  19.  
  20. /**
  21. * @author Nico
  22. *
  23. */
  24. public class ImageBorder extends AbstractBorder implements MouseListener
  25. {
  26. private static final long serialVersionUID = 321403610852781775L;
  27.  
  28. private static final Insets inset = new Insets(18,8,8,8);
  29. private String _text;
  30.  
  31. /**
  32. *
  33. */
  34. public ImageBorder(String text)
  35. {
  36. _text = text;
  37.  
  38. }
  39.  
  40. /* (non-Javadoc)
  41. * @see javax.swing.border.Border#getBorderInsets(java.awt.Component)
  42. */
  43. @Override
  44. public Insets getBorderInsets(Component arg0)
  45. {
  46. return inset;
  47. }
  48.  
  49. /* (non-Javadoc)
  50. * @see javax.swing.border.Border#isBorderOpaque()
  51. */
  52. @Override
  53. public boolean isBorderOpaque()
  54. {
  55. return false;
  56. }
  57.  
  58. /* (non-Javadoc)
  59. * @see javax.swing.border.Border#paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int)
  60. */
  61. @Override
  62. public void paintBorder(Component component, Graphics graph, int posX, int posY,
  63. int width, int height)
  64. {
  65. Graphics2D graph2d = (Graphics2D)(graph.create());
  66.  
  67. // Set rendering hints for a smooth display of the text and the shape
  68. graph2d.addRenderingHints( new RenderingHints( RenderingHints.KEY_ANTIALIASING,
  69. RenderingHints.VALUE_ANTIALIAS_ON ));
  70. graph2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING,
  71. RenderingHints.VALUE_TEXT_ANTIALIAS_ON));
  72.  
  73. Font textFont = new Font("Dialog", Font.BOLD, 12);
  74. FontMetrics metrics = component.getFontMetrics(textFont);
  75.  
  76. if (isInComponentBounds(component, width, height))
  77. {
  78. graph2d.setColor(new Color(0xB0CFFC).darker().darker());
  79. }
  80. else
  81. {
  82. graph2d.setColor(new Color(0xB0CFFC));
  83. }
  84.  
  85. graph2d.drawRoundRect(posX +7 , posY+7, width-8, height-8, 11, 11);
  86.  
  87. graph2d.setColor(component.getBackground());
  88. graph2d.drawLine(posX + 7 + 8 -1,posY+7, posX + 7 + 8 + metrics.stringWidth(_text) +1, posY+7);
  89.  
  90. graph2d.setColor(Color.DARK_GRAY);
  91. graph2d.setFont(textFont);
  92. graph2d.drawString(_text, posX + 7 + 8, posY + 7 + 5 );
  93.  
  94. graph2d.dispose();
  95. }
  96.  
  97. /**
  98. *
  99. */
  100. private boolean isInComponentBounds(Component comp, int width, int height)
  101. {
  102. int mouseX =MouseInfo.getPointerInfo().getLocation().x;
  103. int mouseY =MouseInfo.getPointerInfo().getLocation().y;
  104.  
  105. int x = (int)comp.getLocationOnScreen().getX();
  106. int y = (int)comp.getLocationOnScreen().getY();;
  107.  
  108. if (mouseX <= (x+width) && (mouseX >= x)
  109. && (mouseY >= y) && (mouseY <= (y+height)))
  110. {
  111. return true;
  112. }
  113. else
  114. {
  115. return false;
  116. }
  117. }
  118.  
  119. /* (non-Javadoc)
  120. * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
  121. */
  122. @Override
  123. public void mouseClicked(MouseEvent arg0)
  124. {}
  125.  
  126. /* (non-Javadoc)
  127. * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
  128. */
  129. @Override
  130. public void mouseEntered(MouseEvent arg0)
  131. {
  132. SkinListerPanel.getInstance().getInputPanel().repaint();
  133. }
  134.  
  135. /* (non-Javadoc)
  136. * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
  137. */
  138. @Override
  139. public void mouseExited(MouseEvent arg0)
  140. {
  141. SkinListerPanel.getInstance().getInputPanel().repaint();
  142. }
  143.  
  144. /* (non-Javadoc)
  145. * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
  146. */
  147. @Override
  148. public void mousePressed(MouseEvent arg0)
  149. {}
  150.  
  151. /* (non-Javadoc)
  152. * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
  153. */
  154. @Override
  155. public void mouseReleased(MouseEvent arg0)
  156. {}
  157. }
Add Comment
Please, Sign In to add comment