1 package org.wcb.gui.component;
2
3 import javax.swing.*;
4 import java.awt.*;
5 import java.awt.image.BufferedImage;
6
7 import org.wcb.gui.util.UIHelper;
8
9 /**
10 * <small>
11 * <p/>
12 * Copyright (c) 2006 wbogaardt.
13 * This library is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU Lesser General Public
15 * License as published by the Free Software Foundation; either
16 * version 2.1 of the License, or (at your option) any later version.
17 *
18 * This library is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * Lesser General Public License for more details.
22 *
23 * You should have received a copy of the GNU Lesser General Public
24 * License along with this library; if not, write to the Free Software
25 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
26 * <p/>
27 * $File: $ <br>
28 * $Change: $ submitted by $Author: wbogaardt $ at $DateTime: Sep 14, 2006 4:03:29 PM $ <br>
29 * </small>
30 *
31 * @author wbogaardt
32 * Allows painting a background image as tiled.
33 */
34
35 public class CoolTitlePanel extends JPanel {
36
37 BufferedImage mImage;
38 BufferedImage mTop;
39 BufferedImage mBottom;
40 BufferedImage mRight;
41 BufferedImage mTopRight;
42
43 public CoolTitlePanel() {
44 mBottom = (BufferedImage) UIHelper.loadImage("org/wcb/resources/gui/book/bottom.jpg");
45 mTop = (BufferedImage) UIHelper.loadImage("org/wcb/resources/gui/book/top.jpg");
46 mRight = (BufferedImage) UIHelper.loadImage("org/wcb/resources/gui/book/rightside.jpg");
47 mTopRight = (BufferedImage) UIHelper.loadImage("org/wcb/resources/gui/book/top-right-corner.jpg");
48 mImage = (BufferedImage) UIHelper.loadImage("org/wcb/resources/gui/tile.gif");
49 setSize(800, 100);
50 }
51
52
53 public void paintComponent(Graphics g) {
54 int width = getWidth();
55 int height = getHeight();
56 int topBottomWidth = mTop.getWidth(this);
57 int topBottomHeight = mBottom.getHeight(this);
58 int sideWidth = mRight.getWidth(this);
59 int sideHeight = mRight.getHeight(this);
60 for (int y = 0; y < height; y += sideHeight) {
61 g.drawImage(mRight, width - sideWidth, y, this);
62 }
63
64 for (int i = 0; i < width; i += topBottomWidth) {
65 g.drawImage(mTop, i, 0, this);
66 g.drawImage(mBottom, i, height - topBottomHeight, this);
67 }
68
69 /*for (int x = 0; x < width; x += imageW) {
70 for (int y = 0; y < height; y += imageH) {
71 g.drawImage(mImage, x, y, this);
72 }
73 } */
74 }
75
76 /*public void paint(Graphics g) {
77 int width = getWidth();
78 int height = getHeight();
79 int imageW = mImage.getWidth(this);
80 int imageH = mImage.getHeight(this);
81 int topBottomWidth = mTop.getWidth(this);
82 int topBottomHeight = mBottom.getHeight(this);
83 for (int i = 0; i < width; i +=topBottomWidth) {
84 g.drawImage(mTop,i,0, null);
85 g.drawImage(mBottom, i, height - topBottomHeight, null);
86 }
87 } */
88 /*
89 public void paint(Graphics g) {
90 Graphics2D g2 = (Graphics2D)g;
91 // Create a round rectangle.
92 RoundRectangle2D r =
93 new RoundRectangle2D.Float(25, 35, 150, 150, 25, 25);
94 // Create a texture rectangle the same size as the texture image.
95 Rectangle2D tr = new Rectangle2D.Double(0, 0,
96 mImage.getWidth(), mImage.getHeight());
97 // Create the TexturePaint.
98 TexturePaint tp = new TexturePaint(mImage, tr);
99 // Now fill the round rectangle.
100 g2.setPaint(tp);
101 g2.fill(r);
102 }*/
103 }