diff options
author | Starla Insigna <hatkirby@fourisland.com> | 2009-02-08 17:12:38 -0500 |
---|---|---|
committer | Starla Insigna <hatkirby@fourisland.com> | 2009-02-08 17:12:38 -0500 |
commit | 50928c2d12bf145711df877bb86aadfb1306860b (patch) | |
tree | badafeb8015ff7550d5fe9bf70b0803b5c6aa9b3 /src | |
parent | ed66e0aef4f519052a982dfcd1d454a1699e9800 (diff) | |
download | fourpuzzle-50928c2d12bf145711df877bb86aadfb1306860b.tar.gz fourpuzzle-50928c2d12bf145711df877bb86aadfb1306860b.tar.bz2 fourpuzzle-50928c2d12bf145711df877bb86aadfb1306860b.zip |
Add choice choosing to ChoiceWindow
ChoiceWindow has also been modified around to rely on a Window class which makes the process more elegant (not elegant, just more so than before). TitleScreenGameState has also been modified to close the game when "End" is selected.
Diffstat (limited to 'src')
6 files changed, 253 insertions, 110 deletions
diff --git a/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java b/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java index 2f5dc97..998d33a 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java +++ b/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java | |||
@@ -10,6 +10,7 @@ import com.fourisland.fourpuzzle.gamestate.mapview.MapViewGameState; | |||
10 | import com.fourisland.fourpuzzle.transition.SquareTransition; | 10 | import com.fourisland.fourpuzzle.transition.SquareTransition; |
11 | import com.fourisland.fourpuzzle.transition.TransitionDirection; | 11 | import com.fourisland.fourpuzzle.transition.TransitionDirection; |
12 | import com.fourisland.fourpuzzle.util.ObjectLoader; | 12 | import com.fourisland.fourpuzzle.util.ObjectLoader; |
13 | import com.fourisland.fourpuzzle.util.PauseTimer; | ||
13 | import com.fourisland.fourpuzzle.window.ChoiceWindow; | 14 | import com.fourisland.fourpuzzle.window.ChoiceWindow; |
14 | import java.awt.Graphics2D; | 15 | import java.awt.Graphics2D; |
15 | import java.awt.event.KeyEvent; | 16 | import java.awt.event.KeyEvent; |
@@ -38,29 +39,62 @@ public class TitleScreenGameState implements GameState { | |||
38 | Audio.stopMusic(); | 39 | Audio.stopMusic(); |
39 | } | 40 | } |
40 | 41 | ||
42 | PauseTimer pt = new PauseTimer(0); | ||
41 | public void processInput() | 43 | public void processInput() |
42 | { | 44 | { |
43 | if (Game.getKey().getKeyCode() == KeyEvent.VK_ENTER) | 45 | if (pt.isElapsed()) |
44 | { | 46 | { |
45 | Game.setSaveFile(new SaveFile()); | 47 | if (Game.getKey().getKeyCode() == KeyEvent.VK_ENTER) |
46 | 48 | { | |
47 | new Thread(new Runnable() { | 49 | if (choices.getSelected().equals(Database.getVocab("NewGame"))) |
48 | public void run() { | 50 | { |
49 | try { | 51 | Game.setSaveFile(new SaveFile()); |
50 | Display.transition(new SquareTransition(TransitionDirection.Out)); | 52 | |
51 | } catch (InterruptedException ex) { | 53 | new Thread(new Runnable() { |
52 | Thread.currentThread().interrupt(); | 54 | public void run() { |
53 | } | 55 | try { |
54 | 56 | Display.transition(new SquareTransition(TransitionDirection.Out)); | |
55 | Game.setGameState(new MapViewGameState("TestMap", 1, 2)); | 57 | } catch (InterruptedException ex) { |
56 | 58 | Thread.currentThread().interrupt(); | |
57 | try { | 59 | } |
58 | Display.transition(new SquareTransition(TransitionDirection.In)); | 60 | |
59 | } catch (InterruptedException ex) { | 61 | Game.setGameState(new MapViewGameState("TestMap", 1, 2)); |
60 | Thread.currentThread().interrupt(); | 62 | |
61 | } | 63 | try { |
64 | Display.transition(new SquareTransition(TransitionDirection.In)); | ||
65 | } catch (InterruptedException ex) { | ||
66 | Thread.currentThread().interrupt(); | ||
67 | } | ||
68 | } | ||
69 | }).start(); | ||
70 | } else if (choices.getSelected().equals(Database.getVocab("LoadGame"))) | ||
71 | { | ||
72 | // Do nothing, yet | ||
73 | } else if (choices.getSelected().equals(Database.getVocab("EndGame"))) | ||
74 | { | ||
75 | new Thread(new Runnable() { | ||
76 | public void run() { | ||
77 | try { | ||
78 | Display.transition(new SquareTransition(TransitionDirection.Out)); | ||
79 | } catch (InterruptedException ex) { | ||
80 | Thread.currentThread().interrupt(); | ||
81 | } | ||
82 | |||
83 | System.exit(0); | ||
84 | } | ||
85 | }).start(); | ||
62 | } | 86 | } |
63 | }).start(); | 87 | } else if (Game.getKey().getKeyCode() == KeyEvent.VK_UP) |
88 | { | ||
89 | choices.moveUp(); | ||
90 | |||
91 | pt.setTimer(1); | ||
92 | } else if (Game.getKey().getKeyCode() == KeyEvent.VK_DOWN) | ||
93 | { | ||
94 | choices.moveDown(); | ||
95 | |||
96 | pt.setTimer(1); | ||
97 | } | ||
64 | } | 98 | } |
65 | } | 99 | } |
66 | 100 | ||
diff --git a/src/com/fourisland/fourpuzzle/util/PauseTimer.java b/src/com/fourisland/fourpuzzle/util/PauseTimer.java new file mode 100644 index 0000000..0e52b0f --- /dev/null +++ b/src/com/fourisland/fourpuzzle/util/PauseTimer.java | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * To change this template, choose Tools | Templates | ||
3 | * and open the template in the editor. | ||
4 | */ | ||
5 | |||
6 | package com.fourisland.fourpuzzle.util; | ||
7 | |||
8 | /** | ||
9 | * | ||
10 | * @author hatkirby | ||
11 | */ | ||
12 | public class PauseTimer { | ||
13 | |||
14 | private int ticks; | ||
15 | public PauseTimer(int ticks) | ||
16 | { | ||
17 | this.ticks = ticks; | ||
18 | } | ||
19 | |||
20 | Interval in = Interval.createTickInterval(1); | ||
21 | public boolean isElapsed() | ||
22 | { | ||
23 | if (in.isElapsed()) | ||
24 | { | ||
25 | if (ticks == 0) | ||
26 | { | ||
27 | return true; | ||
28 | } else { | ||
29 | ticks--; | ||
30 | } | ||
31 | } | ||
32 | |||
33 | return false; | ||
34 | } | ||
35 | |||
36 | public void setTimer(int ticks) | ||
37 | { | ||
38 | this.ticks = ticks; | ||
39 | } | ||
40 | |||
41 | } | ||
diff --git a/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java b/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java index 40fff30..3b30acc 100755 --- a/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java +++ b/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java | |||
@@ -5,18 +5,13 @@ | |||
5 | 5 | ||
6 | package com.fourisland.fourpuzzle.window; | 6 | package com.fourisland.fourpuzzle.window; |
7 | 7 | ||
8 | import com.fourisland.fourpuzzle.util.TransparentPixelFilter; | 8 | import com.fourisland.fourpuzzle.Audio; |
9 | import java.awt.Font; | 9 | import java.awt.Font; |
10 | import java.awt.Toolkit; | ||
11 | import java.awt.Graphics2D; | 10 | import java.awt.Graphics2D; |
12 | import java.awt.Rectangle; | 11 | import java.awt.Rectangle; |
13 | import java.awt.TexturePaint; | 12 | import java.awt.TexturePaint; |
14 | import java.awt.image.BufferedImage; | 13 | import java.awt.image.BufferedImage; |
15 | import java.awt.image.FilteredImageSource; | ||
16 | import java.util.List; | 14 | import java.util.List; |
17 | import static com.fourisland.fourpuzzle.window.SystemChoiceArea.*; | ||
18 | |||
19 | /* TODO Find a more elegant way to implement window, it looks terrible now */ | ||
20 | 15 | ||
21 | /** | 16 | /** |
22 | * | 17 | * |
@@ -35,7 +30,7 @@ public class ChoiceWindow { | |||
35 | numChoices = choices.size(); | 30 | numChoices = choices.size(); |
36 | this.center = center; | 31 | this.center = center; |
37 | 32 | ||
38 | createGraphic(new BufferedImage(TopLeft.getWidth()+getWidth()+TopRight.getWidth(), TopLeft.getHeight()+getHeight()+BottomLeft.getHeight(), BufferedImage.TYPE_INT_ARGB).createGraphics()); | 33 | createGraphic(new BufferedImage(Window.Default.getFullWidth(width), Window.Default.getFullHeight(height), BufferedImage.TYPE_INT_ARGB).createGraphics()); |
39 | } | 34 | } |
40 | 35 | ||
41 | private int width; | 36 | private int width; |
@@ -57,36 +52,38 @@ public class ChoiceWindow { | |||
57 | width += SPACER*2; | 52 | width += SPACER*2; |
58 | height -= SPACER; | 53 | height -= SPACER; |
59 | 54 | ||
60 | BufferedImage temp = new BufferedImage(TopLeft.getWidth()+getWidth()+TopRight.getWidth(), TopLeft.getHeight()+getHeight()+BottomLeft.getHeight(), BufferedImage.TYPE_INT_ARGB); | 55 | cacheBase = new BufferedImage(Window.Default.getFullWidth(width), Window.Default.getFullHeight(height), BufferedImage.TYPE_INT_ARGB); |
61 | Graphics2D g = temp.createGraphics(); | ||
62 | |||
63 | g.drawImage(SystemGraphic.getChoiceArea(TopLeft), 0, 0, null); | ||
64 | g.drawImage(SystemGraphic.getChoiceArea(Top), TopLeft.getWidth(), 0, getWidth(),Top.getHeight(), null); | ||
65 | g.drawImage(SystemGraphic.getChoiceArea(TopRight), TopLeft.getWidth()+getWidth(), 0, null); | ||
66 | g.drawImage(SystemGraphic.getChoiceArea(Left), 0, TopLeft.getHeight(), Left.getWidth(),getHeight(), null); | ||
67 | g.drawImage(SystemGraphic.getChoiceArea(BottomLeft), 0, TopLeft.getHeight()+getHeight(), null); | ||
68 | g.drawImage(SystemGraphic.getChoiceArea(Bottom), BottomLeft.getWidth(), (getHeight()+TopLeft.getHeight()+BottomLeft.getHeight())-Bottom.getHeight(), getWidth(),Bottom.getHeight(), null); | ||
69 | g.drawImage(SystemGraphic.getChoiceArea(BottomRight), BottomRight.getWidth()+getWidth(), TopRight.getHeight()+getHeight(), null); | ||
70 | g.drawImage(SystemGraphic.getChoiceArea(Right), (getWidth()+TopLeft.getWidth()+TopRight.getWidth())-Right.getWidth(), TopRight.getHeight(), Right.getWidth(),getHeight(), null); | ||
71 | |||
72 | cacheBase = new BufferedImage(TopLeft.getWidth()+getWidth()+TopRight.getWidth(), TopLeft.getHeight()+getHeight()+BottomLeft.getHeight(), BufferedImage.TYPE_INT_ARGB); | ||
73 | Graphics2D g2 = cacheBase.createGraphics(); | 56 | Graphics2D g2 = cacheBase.createGraphics(); |
74 | 57 | ||
75 | g2.drawImage(SystemGraphic.getMessageBackground(), 1, 1, TopLeft.getWidth()+getWidth()+TopRight.getWidth()-2, TopLeft.getHeight()+getHeight()+BottomLeft.getHeight()-2, null); | 58 | g2.drawImage(SystemGraphic.getMessageBackground(), 1, 1, Window.Default.getFullWidth(width)-2, Window.Default.getFullHeight(height)-2, null); |
76 | g2.drawImage(Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(temp.getSource(), new TransparentPixelFilter(SystemGraphic.getTransparentColor().getRGB()))), 0, 0, null); | 59 | g2.drawImage(Window.Default.getImage(width, height), 0, 0, null); |
60 | } | ||
61 | |||
62 | public void render(Graphics2D g2, int x, int y) | ||
63 | { | ||
64 | g2.drawImage(cacheBase, x, y, null); | ||
65 | |||
77 | g2.setFont(g2.getFont().deriveFont(Font.BOLD)); | 66 | g2.setFont(g2.getFont().deriveFont(Font.BOLD)); |
78 | 67 | ||
79 | int ty = TopLeft.getHeight()+g2.getFontMetrics().getHeight()-SPACER; | 68 | int fh = g2.getFontMetrics().getHeight(); |
69 | int ty = Window.Default.getTopY()+fh-SPACER+y; | ||
80 | for (String choice : choices) | 70 | for (String choice : choices) |
81 | { | 71 | { |
82 | int tx = TopLeft.getWidth(); | 72 | int fw = g2.getFontMetrics().stringWidth(choice); |
73 | int tx = Window.Default.getLeftX()+x; | ||
83 | 74 | ||
84 | if (center) | 75 | if (center) |
85 | { | 76 | { |
86 | tx += ((width/2)-(g2.getFontMetrics().stringWidth(choice)/2)); | 77 | tx += ((width/2)-(fw/2)); |
78 | } | ||
79 | |||
80 | if (getSelected().equals(choice)) | ||
81 | { | ||
82 | g2.drawImage(SystemGraphic.getSelectionBackground(), tx, ty-fh, fw+SPACER-2, fh+SPACER-2, null); | ||
83 | g2.drawImage(Window.Selector.getImage(fw-Window.Selector.getLeftX(), fh-Window.Selector.getTopY()), tx-SPACER, ty-fh, null); | ||
87 | } | 84 | } |
88 | 85 | ||
89 | g2.setPaint(new TexturePaint(SystemGraphic.getTextColor(), new Rectangle(tx, ty, g2.getFontMetrics().stringWidth(choice),g2.getFontMetrics().getHeight()))); | 86 | g2.setPaint(new TexturePaint(SystemGraphic.getTextColor(), new Rectangle(tx, ty, fw, fh))); |
90 | g2.drawString(choice, tx, ty); | 87 | g2.drawString(choice, tx, ty); |
91 | 88 | ||
92 | ty+=(SPACER+g2.getFontMetrics().getHeight()); | 89 | ty+=(SPACER+g2.getFontMetrics().getHeight()); |
@@ -95,11 +92,6 @@ public class ChoiceWindow { | |||
95 | g2.setFont(g2.getFont().deriveFont(Font.PLAIN)); | 92 | g2.setFont(g2.getFont().deriveFont(Font.PLAIN)); |
96 | } | 93 | } |
97 | 94 | ||
98 | public void render(Graphics2D g2, int x, int y) | ||
99 | { | ||
100 | g2.drawImage(cacheBase, x, y, null); | ||
101 | } | ||
102 | |||
103 | public int getWidth() | 95 | public int getWidth() |
104 | { | 96 | { |
105 | return width; | 97 | return width; |
@@ -113,12 +105,22 @@ public class ChoiceWindow { | |||
113 | int selected = 0; | 105 | int selected = 0; |
114 | public void moveUp() | 106 | public void moveUp() |
115 | { | 107 | { |
116 | selected--; | 108 | if (selected > 0) |
109 | { | ||
110 | Audio.playSound("Cursor1"); | ||
111 | |||
112 | selected--; | ||
113 | } | ||
117 | } | 114 | } |
118 | 115 | ||
119 | public void moveDown() | 116 | public void moveDown() |
120 | { | 117 | { |
121 | selected++; | 118 | if (selected < (choices.size()-1)) |
119 | { | ||
120 | Audio.playSound("Cursor1"); | ||
121 | |||
122 | selected++; | ||
123 | } | ||
122 | } | 124 | } |
123 | 125 | ||
124 | public String getSelected() | 126 | public String getSelected() |
diff --git a/src/com/fourisland/fourpuzzle/window/SystemChoiceArea.java b/src/com/fourisland/fourpuzzle/window/SystemChoiceArea.java deleted file mode 100755 index 5fc115f..0000000 --- a/src/com/fourisland/fourpuzzle/window/SystemChoiceArea.java +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | /* | ||
2 | * To change this template, choose Tools | Templates | ||
3 | * and open the template in the editor. | ||
4 | */ | ||
5 | |||
6 | package com.fourisland.fourpuzzle.window; | ||
7 | |||
8 | /** | ||
9 | * | ||
10 | * @author hatkirby | ||
11 | */ | ||
12 | public enum SystemChoiceArea | ||
13 | { | ||
14 | Top(47, 0, 1, 9), | ||
15 | TopRight(56, 0, 8, 9), | ||
16 | Right(56, 15, 8, 1), | ||
17 | BottomRight(56, 25, 8, 9), | ||
18 | Bottom(47, 24, 1, 9), | ||
19 | BottomLeft(32, 24, 11, 9), | ||
20 | Left(32, 15, 11, 1), | ||
21 | TopLeft(32, 0, 8, 8), | ||
22 | UpArrow(43, 9, 10, 6), | ||
23 | DownArrow(43, 17, 10, 6); | ||
24 | |||
25 | private final int x; | ||
26 | private final int y; | ||
27 | private final int width; | ||
28 | private final int height; | ||
29 | private SystemChoiceArea(int x, int y, int width, int height) | ||
30 | { | ||
31 | this.x = x; | ||
32 | this.y = y; | ||
33 | this.width = width; | ||
34 | this.height = height; | ||
35 | } | ||
36 | |||
37 | public int getX() | ||
38 | { | ||
39 | return x; | ||
40 | } | ||
41 | |||
42 | public int getY() | ||
43 | { | ||
44 | return y; | ||
45 | } | ||
46 | |||
47 | public int getWidth() | ||
48 | { | ||
49 | return width; | ||
50 | } | ||
51 | |||
52 | public int getHeight() | ||
53 | { | ||
54 | return height; | ||
55 | } | ||
56 | } \ No newline at end of file | ||
diff --git a/src/com/fourisland/fourpuzzle/window/SystemGraphic.java b/src/com/fourisland/fourpuzzle/window/SystemGraphic.java index ea67f41..24e0104 100755 --- a/src/com/fourisland/fourpuzzle/window/SystemGraphic.java +++ b/src/com/fourisland/fourpuzzle/window/SystemGraphic.java | |||
@@ -7,6 +7,7 @@ package com.fourisland.fourpuzzle.window; | |||
7 | 7 | ||
8 | import com.fourisland.fourpuzzle.util.ObjectLoader; | 8 | import com.fourisland.fourpuzzle.util.ObjectLoader; |
9 | import java.awt.Color; | 9 | import java.awt.Color; |
10 | import java.awt.Rectangle; | ||
10 | import java.awt.image.BufferedImage; | 11 | import java.awt.image.BufferedImage; |
11 | 12 | ||
12 | /** | 13 | /** |
@@ -32,9 +33,14 @@ public class SystemGraphic { | |||
32 | return systemGraphic.getSubimage(0, 0, 32, 32); | 33 | return systemGraphic.getSubimage(0, 0, 32, 32); |
33 | } | 34 | } |
34 | 35 | ||
35 | public static BufferedImage getChoiceArea(SystemChoiceArea sca) | 36 | public static BufferedImage getSelectionBackground() |
36 | { | 37 | { |
37 | return systemGraphic.getSubimage(sca.getX(), sca.getY(), sca.getWidth(), sca.getHeight()); | 38 | return systemGraphic.getSubimage(79, 15, 1, 1); |
39 | } | ||
40 | |||
41 | public static BufferedImage getChoiceArea(Rectangle sca) | ||
42 | { | ||
43 | return systemGraphic.getSubimage(sca.x, sca.y, sca.width, sca.height); | ||
38 | } | 44 | } |
39 | 45 | ||
40 | public static BufferedImage getTextColor() | 46 | public static BufferedImage getTextColor() |
diff --git a/src/com/fourisland/fourpuzzle/window/Window.java b/src/com/fourisland/fourpuzzle/window/Window.java new file mode 100644 index 0000000..fa40cba --- /dev/null +++ b/src/com/fourisland/fourpuzzle/window/Window.java | |||
@@ -0,0 +1,116 @@ | |||
1 | /* | ||
2 | * To change this template, choose Tools | Templates | ||
3 | * and open the template in the editor. | ||
4 | */ | ||
5 | |||
6 | package com.fourisland.fourpuzzle.window; | ||
7 | |||
8 | import com.fourisland.fourpuzzle.util.TransparentPixelFilter; | ||
9 | import java.awt.Graphics2D; | ||
10 | import java.awt.Image; | ||
11 | import java.awt.Rectangle; | ||
12 | import java.awt.Toolkit; | ||
13 | import java.awt.image.BufferedImage; | ||
14 | import java.awt.image.FilteredImageSource; | ||
15 | |||
16 | /** | ||
17 | * | ||
18 | * @author hatkirby | ||
19 | */ | ||
20 | public enum Window | ||
21 | { | ||
22 | Default(32), | ||
23 | Selector(64); | ||
24 | |||
25 | private enum SystemArea | ||
26 | { | ||
27 | TOP(15, 0, 1, 9), | ||
28 | TOP_RIGHT(24, 0, 8, 9), | ||
29 | RIGHT(24, 15, 8, 1), | ||
30 | BOTTOM_RIGHT(24, 25, 8, 9), | ||
31 | BOTTOM(15, 24, 1, 9), | ||
32 | BOTTOM_LEFT(0, 24, 11, 9), | ||
33 | LEFT(0, 15, 11, 1), | ||
34 | TOP_LEFT(0, 0, 8, 8); | ||
35 | |||
36 | private final int x; | ||
37 | private final int y; | ||
38 | private final int width; | ||
39 | private final int height; | ||
40 | private SystemArea(int x, int y, int width, int height) | ||
41 | { | ||
42 | this.x = x; | ||
43 | this.y = y; | ||
44 | this.width = width; | ||
45 | this.height = height; | ||
46 | } | ||
47 | } | ||
48 | |||
49 | private int x; | ||
50 | private Window(int x) | ||
51 | { | ||
52 | this.x = x; | ||
53 | } | ||
54 | |||
55 | private int getX(SystemArea sa) | ||
56 | { | ||
57 | return x+sa.x; | ||
58 | } | ||
59 | |||
60 | private int getY(SystemArea sa) | ||
61 | { | ||
62 | return sa.y; | ||
63 | } | ||
64 | |||
65 | private int getWidth(SystemArea sa) | ||
66 | { | ||
67 | return sa.width; | ||
68 | } | ||
69 | |||
70 | private int getHeight(SystemArea sa) | ||
71 | { | ||
72 | return sa.height; | ||
73 | } | ||
74 | |||
75 | private Rectangle getBounds(SystemArea sa) | ||
76 | { | ||
77 | return new Rectangle(getX(sa), getY(sa), getWidth(sa), getHeight(sa)); | ||
78 | } | ||
79 | |||
80 | public int getFullWidth(int width) | ||
81 | { | ||
82 | return getWidth(SystemArea.TOP_LEFT) + getWidth(SystemArea.TOP_RIGHT) + width; | ||
83 | } | ||
84 | |||
85 | public int getFullHeight(int height) | ||
86 | { | ||
87 | return getHeight(SystemArea.TOP_LEFT) + getHeight(SystemArea.BOTTOM_LEFT) + height; | ||
88 | } | ||
89 | |||
90 | public int getLeftX() | ||
91 | { | ||
92 | return getWidth(SystemArea.TOP_LEFT); | ||
93 | } | ||
94 | |||
95 | public int getTopY() | ||
96 | { | ||
97 | return getHeight(SystemArea.TOP_LEFT); | ||
98 | } | ||
99 | |||
100 | public Image getImage(int width, int height) | ||
101 | { | ||
102 | BufferedImage temp = new BufferedImage(getFullWidth(width), getFullHeight(height), BufferedImage.TYPE_INT_ARGB); | ||
103 | Graphics2D g = temp.createGraphics(); | ||
104 | |||
105 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.TOP_LEFT)), 0, 0, null); | ||
106 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.TOP)), getWidth(SystemArea.TOP_LEFT), 0, width, getHeight(SystemArea.TOP), null); | ||
107 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.TOP_RIGHT)), getWidth(SystemArea.TOP_LEFT)+width, 0, null); | ||
108 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.LEFT)), 0, getHeight(SystemArea.TOP_LEFT), getWidth(SystemArea.LEFT),height, null); | ||
109 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.BOTTOM_LEFT)), 0, getHeight(SystemArea.TOP_LEFT)+height, null); | ||
110 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.BOTTOM)), getWidth(SystemArea.BOTTOM_LEFT), (height+getHeight(SystemArea.TOP_LEFT)+getHeight(SystemArea.BOTTOM_LEFT))-getHeight(SystemArea.BOTTOM), width, getHeight(SystemArea.BOTTOM), null); | ||
111 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.BOTTOM_RIGHT)), getWidth(SystemArea.BOTTOM_RIGHT)+width, getHeight(SystemArea.TOP_RIGHT)+height, null); | ||
112 | g.drawImage(SystemGraphic.getChoiceArea(getBounds(SystemArea.RIGHT)), (width+getWidth(SystemArea.TOP_LEFT)+getWidth(SystemArea.TOP_RIGHT))-getWidth(SystemArea.RIGHT), getHeight(SystemArea.TOP_RIGHT), getWidth(SystemArea.RIGHT), height, null); | ||
113 | |||
114 | return Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(temp.getSource(), new TransparentPixelFilter(SystemGraphic.getTransparentColor().getRGB()))); | ||
115 | } | ||
116 | } \ No newline at end of file | ||