Constants interface changed to class
This commit is contained in:
parent
6818df443a
commit
167ba12e50
@ -1,5 +1,7 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.HEIGHT;
|
||||||
|
import static com.annimon.turrets.Constants.WIDTH;
|
||||||
import com.annimon.turrets.util.Util;
|
import com.annimon.turrets.util.Util;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
@ -8,7 +10,7 @@ import java.awt.Graphics;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public class Background implements Constants {
|
public class Background {
|
||||||
|
|
||||||
private static final int STARS_COUNT = (int) Math.sqrt(WIDTH * HEIGHT);
|
private static final int STARS_COUNT = (int) Math.sqrt(WIDTH * HEIGHT);
|
||||||
|
|
||||||
|
@ -6,12 +6,12 @@ import java.awt.Dimension;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public interface Constants {
|
public final class Constants {
|
||||||
|
|
||||||
// Screen
|
// Screen
|
||||||
public static final int WIDTH = 800, HEIGHT = 600;
|
public static final int WIDTH = 800, HEIGHT = 600;
|
||||||
public static final boolean RESIZABLE = false;
|
public static final boolean RESIZABLE = false;
|
||||||
public static final Dimension SCREEN_DIMENSION = new Dimension(Constants.WIDTH, Constants.HEIGHT);
|
public static final Dimension SCREEN_DIMENSION = new Dimension(WIDTH, HEIGHT);
|
||||||
public static final String FONT_NAME = "Times New Roman";
|
public static final String FONT_NAME = "Times New Roman";
|
||||||
|
|
||||||
// Parameters
|
// Parameters
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.SCREEN_DIMENSION;
|
||||||
import java.awt.Canvas;
|
import java.awt.Canvas;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
@ -22,7 +23,7 @@ public abstract class DoubleBufferedCanvas extends Canvas implements MouseListen
|
|||||||
|
|
||||||
public DoubleBufferedCanvas() {
|
public DoubleBufferedCanvas() {
|
||||||
setSize(Constants.WIDTH, Constants.HEIGHT);
|
setSize(Constants.WIDTH, Constants.HEIGHT);
|
||||||
setPreferredSize(Constants.SCREEN_DIMENSION);
|
setPreferredSize(SCREEN_DIMENSION);
|
||||||
|
|
||||||
addMouseListener(DoubleBufferedCanvas.this);
|
addMouseListener(DoubleBufferedCanvas.this);
|
||||||
addMouseMotionListener(DoubleBufferedCanvas.this);
|
addMouseMotionListener(DoubleBufferedCanvas.this);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.FONT_NAME;
|
||||||
|
import static com.annimon.turrets.Constants.MAX_ROUNDS;
|
||||||
import com.annimon.turrets.Turret.TurretInfo;
|
import com.annimon.turrets.Turret.TurretInfo;
|
||||||
import com.annimon.turrets.network.GameClient;
|
import com.annimon.turrets.network.GameClient;
|
||||||
import com.annimon.turrets.network.GameServer;
|
import com.annimon.turrets.network.GameServer;
|
||||||
@ -42,7 +44,7 @@ public class GameCanvas extends DoubleBufferedCanvas implements Runnable, Networ
|
|||||||
|
|
||||||
background = new BufferedImage(Constants.WIDTH, Constants.HEIGHT, BufferedImage.TYPE_INT_RGB);
|
background = new BufferedImage(Constants.WIDTH, Constants.HEIGHT, BufferedImage.TYPE_INT_RGB);
|
||||||
initBackground();
|
initBackground();
|
||||||
font = new Font(Constants.FONT_NAME, Font.PLAIN, 24);
|
font = new Font(FONT_NAME, Font.PLAIN, 24);
|
||||||
|
|
||||||
wind = new Wind();
|
wind = new Wind();
|
||||||
gameStarted = false;
|
gameStarted = false;
|
||||||
@ -170,8 +172,8 @@ public class GameCanvas extends DoubleBufferedCanvas implements Runnable, Networ
|
|||||||
if (serverWinRound) serverWinCount++;
|
if (serverWinRound) serverWinCount++;
|
||||||
else clientWinCount++;
|
else clientWinCount++;
|
||||||
|
|
||||||
final boolean serverWin = (serverWinCount == Constants.MAX_ROUNDS);
|
final boolean serverWin = (serverWinCount == MAX_ROUNDS);
|
||||||
final boolean clientWin = (clientWinCount == Constants.MAX_ROUNDS);
|
final boolean clientWin = (clientWinCount == MAX_ROUNDS);
|
||||||
if (serverWin || clientWin) {
|
if (serverWin || clientWin) {
|
||||||
// Show winners.
|
// Show winners.
|
||||||
finishGame( (serverWin && serverInstance) || (clientWin && !serverInstance) );
|
finishGame( (serverWin && serverInstance) || (clientWin && !serverInstance) );
|
||||||
@ -183,21 +185,6 @@ public class GameCanvas extends DoubleBufferedCanvas implements Runnable, Networ
|
|||||||
newRound(seed);
|
newRound(seed);
|
||||||
socketHelper.sendNewRoundSeed(seed);
|
socketHelper.sendNewRoundSeed(seed);
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println(serverWinCount + " " + clientWinCount);
|
|
||||||
|
|
||||||
if (serverWinCount == Constants.MAX_ROUNDS) finishGame(true);
|
|
||||||
else if (serverWinCount == -Constants.MAX_ROUNDS) finishGame(false);
|
|
||||||
else {
|
|
||||||
if (serverInstance) {
|
|
||||||
try {
|
|
||||||
Thread.sleep(200);
|
|
||||||
} catch (InterruptedException ex) { }
|
|
||||||
long seed = System.currentTimeMillis();
|
|
||||||
newRound(seed);
|
|
||||||
socketHelper.sendNewRoundSeed(seed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void finishGame(boolean instanceWin) {
|
private void finishGame(boolean instanceWin) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.RESIZABLE;
|
||||||
import com.annimon.turrets.util.GuiUtil;
|
import com.annimon.turrets.util.GuiUtil;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
@ -26,7 +27,7 @@ public class Main extends JFrame {
|
|||||||
|
|
||||||
public Main() {
|
public Main() {
|
||||||
super("Turrets");
|
super("Turrets");
|
||||||
setResizable(Constants.RESIZABLE);
|
setResizable(RESIZABLE);
|
||||||
setLocationByPlatform(true);
|
setLocationByPlatform(true);
|
||||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.SCREEN_DIMENSION;
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
@ -54,7 +55,7 @@ public class MenuPanel extends JPanel {
|
|||||||
titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
|
titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
|
||||||
// Init panel
|
// Init panel
|
||||||
setPreferredSize(Constants.SCREEN_DIMENSION);
|
setPreferredSize(SCREEN_DIMENSION);
|
||||||
setLayout(new BorderLayout());
|
setLayout(new BorderLayout());
|
||||||
setBackground(Color.BLACK);
|
setBackground(Color.BLACK);
|
||||||
add(menuList, BorderLayout.SOUTH);
|
add(menuList, BorderLayout.SOUTH);
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.GRAVITATION_ACCELERATION;
|
||||||
|
import static com.annimon.turrets.Constants.HEIGHT;
|
||||||
|
import static com.annimon.turrets.Constants.PLAYERS_BLOCK_COUNT;
|
||||||
|
import static com.annimon.turrets.Constants.WIDTH;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
|
|
||||||
@ -7,7 +11,7 @@ import java.awt.Graphics2D;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public class ShootInfo implements Constants {
|
public class ShootInfo {
|
||||||
|
|
||||||
double x, y, speedX;
|
double x, y, speedX;
|
||||||
double windSpeed, vsin, t;
|
double windSpeed, vsin, t;
|
||||||
@ -28,11 +32,11 @@ public class ShootInfo implements Constants {
|
|||||||
public void draw(Graphics2D g) {
|
public void draw(Graphics2D g) {
|
||||||
g.setColor(Color.WHITE);
|
g.setColor(Color.WHITE);
|
||||||
final int rad = 2;
|
final int rad = 2;
|
||||||
g.fillArc((int) x - rad, Constants.HEIGHT - (int) y - rad, rad * 2, rad * 2, 0, 360);
|
g.fillArc((int) x - rad, HEIGHT - (int) y - rad, rad * 2, rad * 2, 0, 360);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOver() {
|
public boolean isOver() {
|
||||||
return (x < 0) || (x >= Constants.WIDTH) || (y < 0);
|
return (x < 0) || (x >= WIDTH) || (y < 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCollideOpponent(boolean server, Terrain tr) {
|
public boolean isCollideOpponent(boolean server, Terrain tr) {
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.HEIGHT;
|
||||||
|
import static com.annimon.turrets.Constants.PLAYERS_BLOCK_COUNT;
|
||||||
|
import static com.annimon.turrets.Constants.WIDTH;
|
||||||
import com.annimon.turrets.util.Util;
|
import com.annimon.turrets.util.Util;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.LinearGradientPaint;
|
import java.awt.LinearGradientPaint;
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructible terrain.
|
* Destructible terrain.
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public class Terrain implements Constants {
|
public class Terrain {
|
||||||
|
|
||||||
private static final Color[] TERRAIN_COLOR = {
|
private static final Color[] TERRAIN_COLOR = {
|
||||||
new Color(0xFF33CE2B), new Color(0xFF1C7317)
|
new Color(0xFF33CE2B), new Color(0xFF1C7317)
|
||||||
@ -94,8 +96,8 @@ public class Terrain implements Constants {
|
|||||||
}
|
}
|
||||||
|
|
||||||
gradientPaint = new LinearGradientPaint(
|
gradientPaint = new LinearGradientPaint(
|
||||||
0, Constants.HEIGHT - maxBlockHeight,
|
0, HEIGHT - maxBlockHeight,
|
||||||
0, Constants.HEIGHT,
|
0, HEIGHT,
|
||||||
new float[] {0f, 1f}, TERRAIN_COLOR);
|
new float[] {0f, 1f}, TERRAIN_COLOR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.DEBUG_MODE;
|
||||||
|
import static com.annimon.turrets.Constants.GRAVITATION_ACCELERATION;
|
||||||
|
import static com.annimon.turrets.Constants.HEIGHT;
|
||||||
|
import static com.annimon.turrets.Constants.PLAYERS_BLOCK_COUNT;
|
||||||
|
import static com.annimon.turrets.Constants.WIDTH;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
|
|
||||||
@ -7,7 +12,7 @@ import java.awt.Graphics2D;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public class Turret implements Constants {
|
public class Turret {
|
||||||
|
|
||||||
public static final boolean SERVER = true, CLIENT = false;
|
public static final boolean SERVER = true, CLIENT = false;
|
||||||
|
|
||||||
@ -34,10 +39,10 @@ public class Turret implements Constants {
|
|||||||
|
|
||||||
public Turret(boolean server, Terrain terrain, Wind wind) {
|
public Turret(boolean server, Terrain terrain, Wind wind) {
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.turretX = (server ? 5 : Constants.WIDTH - 5);
|
this.turretX = (server ? 5 : WIDTH - 5);
|
||||||
this.terrain = terrain;
|
this.terrain = terrain;
|
||||||
this.wind = wind;
|
this.wind = wind;
|
||||||
barrelRadius = Constants.WIDTH / 20;
|
barrelRadius = WIDTH / 20;
|
||||||
shootInfo = new ShootInfo();
|
shootInfo = new ShootInfo();
|
||||||
reinit();
|
reinit();
|
||||||
}
|
}
|
||||||
@ -58,9 +63,9 @@ public class Turret implements Constants {
|
|||||||
|
|
||||||
public void draw(Graphics2D g) {
|
public void draw(Graphics2D g) {
|
||||||
g.setColor(Color.WHITE);
|
g.setColor(Color.WHITE);
|
||||||
g.drawLine(turretX, Constants.HEIGHT - turretY, barrelX, Constants.HEIGHT - barrelY);
|
g.drawLine(turretX, HEIGHT - turretY, barrelX, HEIGHT - barrelY);
|
||||||
g.setColor(server ? Color.BLUE : Color.RED);
|
g.setColor(server ? Color.BLUE : Color.RED);
|
||||||
g.fillArc(turretX - TURRET_WIDTH / 2, Constants.HEIGHT - turretY - TURRET_HEIGHT / 2,
|
g.fillArc(turretX - TURRET_WIDTH / 2, HEIGHT - turretY - TURRET_HEIGHT / 2,
|
||||||
TURRET_WIDTH, TURRET_HEIGHT, 0, 180);
|
TURRET_WIDTH, TURRET_HEIGHT, 0, 180);
|
||||||
if (shootState) {
|
if (shootState) {
|
||||||
shootInfo.update(server);
|
shootInfo.update(server);
|
||||||
@ -83,7 +88,7 @@ public class Turret implements Constants {
|
|||||||
g.setColor(Color.RED);
|
g.setColor(Color.RED);
|
||||||
double x = barrelX;
|
double x = barrelX;
|
||||||
double y = barrelY;
|
double y = barrelY;
|
||||||
final double speed = shotPower * (Constants.WIDTH / 80d);
|
final double speed = shotPower * (WIDTH / 80d);
|
||||||
final double windSpeed = wind.getSpeed();
|
final double windSpeed = wind.getSpeed();
|
||||||
final double speedX = speed * Math.cos(barrelAngle);
|
final double speedX = speed * Math.cos(barrelAngle);
|
||||||
final double vsin = speed * Math.sin(barrelAngle);
|
final double vsin = speed * Math.sin(barrelAngle);
|
||||||
@ -98,8 +103,8 @@ public class Turret implements Constants {
|
|||||||
y += speedY;
|
y += speedY;
|
||||||
t += 0.01;
|
t += 0.01;
|
||||||
|
|
||||||
g.drawLine((int) x, Constants.HEIGHT - (int) y, (int) x, Constants.HEIGHT - (int) y);
|
g.drawLine((int) x, HEIGHT - (int) y, (int) x, HEIGHT - (int) y);
|
||||||
isOver = (x < 0) || (x >= Constants.WIDTH) || (y < 0);
|
isOver = (x < 0) || (x >= WIDTH) || (y < 0);
|
||||||
} while (!isOver);
|
} while (!isOver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -111,8 +116,8 @@ public class Turret implements Constants {
|
|||||||
if (!server) angle = Math.PI - angle;
|
if (!server) angle = Math.PI - angle;
|
||||||
if ( (0d <= angle) && (angle <= ANGLE_90) ) {
|
if ( (0d <= angle) && (angle <= ANGLE_90) ) {
|
||||||
barrelAngle = angle;
|
barrelAngle = angle;
|
||||||
final int xlocal = (server ? x : Constants.WIDTH - x);
|
final int xlocal = (server ? x : WIDTH - x);
|
||||||
shotPower = Math.sqrt(xlocal*xlocal + y*y) / (double) Constants.WIDTH;
|
shotPower = Math.sqrt(xlocal*xlocal + y*y) / (double) WIDTH;
|
||||||
calculateBarrelPosition();
|
calculateBarrelPosition();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -140,7 +145,7 @@ public class Turret implements Constants {
|
|||||||
shootInfo.reset();
|
shootInfo.reset();
|
||||||
shootInfo.x = barrelX;
|
shootInfo.x = barrelX;
|
||||||
shootInfo.y = barrelY;
|
shootInfo.y = barrelY;
|
||||||
final double speed = shotPower * (Constants.WIDTH / 80d);
|
final double speed = shotPower * (WIDTH / 80d);
|
||||||
shootInfo.windSpeed = wind.getSpeed() * (server ? 1 : -1);
|
shootInfo.windSpeed = wind.getSpeed() * (server ? 1 : -1);
|
||||||
shootInfo.speedX = speed * Math.cos(barrelAngle);
|
shootInfo.speedX = speed * Math.cos(barrelAngle);
|
||||||
shootInfo.vsin = speed * Math.sin(barrelAngle);
|
shootInfo.vsin = speed * Math.sin(barrelAngle);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.annimon.turrets;
|
package com.annimon.turrets;
|
||||||
|
|
||||||
|
import static com.annimon.turrets.Constants.MAX_WIND_STRENGTH;
|
||||||
|
import static com.annimon.turrets.Constants.WIDTH;
|
||||||
import com.annimon.turrets.util.Util;
|
import com.annimon.turrets.util.Util;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.FontMetrics;
|
import java.awt.FontMetrics;
|
||||||
@ -18,14 +20,14 @@ public class Wind {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void change() {
|
public void change() {
|
||||||
speed = Util.rand(-Constants.MAX_WIND_STRENGTH, Constants.MAX_WIND_STRENGTH);
|
speed = Util.rand(-MAX_WIND_STRENGTH, MAX_WIND_STRENGTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawInfo(Graphics2D g, FontMetrics metrics) {
|
public void drawInfo(Graphics2D g, FontMetrics metrics) {
|
||||||
final int speedPercent = (int) (Math.abs(speed) * 100d / Constants.MAX_WIND_STRENGTH);
|
final int speedPercent = (int) (Math.abs(speed) * 100d / MAX_WIND_STRENGTH);
|
||||||
final String value = String.valueOf(speedPercent);
|
final String value = String.valueOf(speedPercent);
|
||||||
final int valueWidth = metrics.stringWidth(value);
|
final int valueWidth = metrics.stringWidth(value);
|
||||||
final int x = (Constants.WIDTH - valueWidth) / 2;
|
final int x = (WIDTH - valueWidth) / 2;
|
||||||
final int y = metrics.getHeight();
|
final int y = metrics.getHeight();
|
||||||
|
|
||||||
g.setColor(Color.RED);
|
g.setColor(Color.RED);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.annimon.turrets.network;
|
package com.annimon.turrets.network;
|
||||||
|
|
||||||
import com.annimon.turrets.Constants;
|
import static com.annimon.turrets.Constants.PORT;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ import java.net.Socket;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public class GameClient implements Constants {
|
public class GameClient {
|
||||||
|
|
||||||
private final SocketHelper helper;
|
private final SocketHelper helper;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.annimon.turrets.network;
|
package com.annimon.turrets.network;
|
||||||
|
|
||||||
import com.annimon.turrets.Constants;
|
import static com.annimon.turrets.Constants.PORT;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.ServerSocket;
|
import java.net.ServerSocket;
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ import java.net.ServerSocket;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public class GameServer implements Constants {
|
public class GameServer {
|
||||||
|
|
||||||
private final ServerSocket serverSocket;
|
private final ServerSocket serverSocket;
|
||||||
private final SocketHelper helper;
|
private final SocketHelper helper;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package com.annimon.turrets.util;
|
package com.annimon.turrets.util;
|
||||||
|
|
||||||
import com.annimon.turrets.Background;
|
import com.annimon.turrets.Background;
|
||||||
import com.annimon.turrets.Constants;
|
import static com.annimon.turrets.Constants.HEIGHT;
|
||||||
|
import static com.annimon.turrets.Constants.WIDTH;
|
||||||
import java.awt.AlphaComposite;
|
import java.awt.AlphaComposite;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.GradientPaint;
|
import java.awt.GradientPaint;
|
||||||
@ -32,8 +33,7 @@ public class GuiUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class PlanetBackground extends javax.swing.plaf.LayerUI<JComponent>
|
public static class PlanetBackground extends javax.swing.plaf.LayerUI<JComponent> {
|
||||||
implements Constants {
|
|
||||||
|
|
||||||
private final BufferedImage image;
|
private final BufferedImage image;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user