|
JVirusFrame |
|
/*
* JVirus is a PacMan clone, written in Java.
*
* Please read "http://jvirus.sourceforge.net/jvirus_licence.txt" for copyrights.
*
* The sourcecode is designed and created with
* Sun J2SDK 1.3 and Microsoft Visual J++ 6.0
*
* JVirus homepage: http://jvirus.sourceforge.net
*
* autor: Slawa Weis
* email: slawaweis@animatronik.net
*
*/
package org.game.JVirus;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import org.game.JVirus.res.*;
/**
* Frame class for the JVirusPanel. JVirus can be a applet, so JVirusFrame is not importand and has no important code.
*
* @see org.game.JVirus.JVirusPanel
*/
public class JVirusFrame extends JFrame
{
/**
* for JVirusPanel
*/
protected JVirusPanel mainPanel = null;
/**
* Main constructor for JVirusFrame. Simply cal it to create the GUI and start the game.
*/
public JVirusFrame()
{
super("JVirus - \"Write once, destroy anywhere\" [version 0.3]");
JVirusInfoScreen is = new JVirusInfoScreen(this);
is.setVisible(true);
setIconImage(new ImageIcon(Resource.class.getResource("logo32x32.gif")).getImage());
mainPanel = new JVirusPanel(this, is);
getContentPane().add(mainPanel);
pack();
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - getWidth())/2, (screen.height - getHeight())/2);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setResizable(false);
addWindowListener(new JVirusFrame.WindowCloser(this));
setVisible(true);
is.setVisible(false);
is.addCloser();
// System.out.println("Window Size: " + getSize());
}
/**
* Infoscreen. Viewing on Start and if the user choose about from help menu.
*/
public class JVirusInfoScreen extends JWindow
{
/**
* Standart constructor. Creates a JWindow witch a image and two JTextArea.
*
* @param parent Frame parent
*/
public JVirusInfoScreen(Frame parent)
{
super(parent);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setBackground(Color.black);
ImageIcon back = new ImageIcon(Resource.class.getResource("startscreen.gif"));
setSize(back.getIconWidth(), back.getIconHeight());
setLocation((screen.width - back.getIconWidth())/2, (screen.height - back.getIconHeight())/2);
Container contentPane = getContentPane();
contentPane.setLayout(null);
String text =
"Loading...\n"+
"\n" +
"!!! Important Notice !!!\n" +
"This virus is a beta, so the e-mailing itself function is not implemented. Please, select 50 of you best friends from you address book and send them this virus. Thanks for you cooperation. You help a little Virus to become big :)."
;
String about =
"created by:\n" +
"Slawa Weis\n" +
"slawaweis@animatronik.net\n" +
"http://jvirus.sourceforge.net"
;
contentPane.add(createTextArea(text, 10, 135, 350, 125, 12, Color.red));
contentPane.add(createTextArea(about, 520, 15, 170, 80, 12, Color.orange));
JLabel back_label = new JLabel(back);
back_label.setSize(back.getIconWidth(), back.getIconHeight());
back_label.setLocation(0, 0);
contentPane.add(back_label);
}
/**
* add a Closer to Infoscreen after loading of the programm.
*/
public void addCloser()
{
addMouseListener(new Closer());
}
/**
* Closer for Infoscreen. Close it if user clicks with mouse.
*/
protected class Closer extends MouseAdapter
{
/**
* from MouseAdapter
*/
public void mouseClicked(MouseEvent e)
{
setVisible(false);
}
}
/**
* Creates a JTextArea for the Infoscreen. Set many Parameters.
*
* @param text text in JTextArea
* @param x x coordinate
* @param y y coordinate
* @param w width
* @param h height
* @param fs font size
* @param color font color
*/
protected JTextArea createTextArea(String text, int x, int y, int w, int h, int fs, Color color)
{
JTextArea jta = new JTextArea(text);
jta.setBorder(null);
jta.setBackground(Color.black);
jta.setForeground(color);
jta.setFont(new Font(jta.getFont().getFontName(), Font.PLAIN, fs));
jta.setLineWrap(true);
jta.setWrapStyleWord(true);
jta.setLocation(x, y);
jta.setSize(w, h);
return jta;
}
}
/**
* Helper class for JVirusFrame to close it.
*
* @see org.game.JVirus.JVirusFrame
*/
protected class WindowCloser extends WindowAdapter
{
/**
* the frame to close
*/
protected JFrame frame = null;
/**
* Main constructor.
*
* @param frame parent frame.
*/
public WindowCloser(JFrame frame)
{
this.frame = frame;
}
/**
* from WindowAdapter.
*
* @see java.awt.event.WindowAdapter
*/
public void windowClosing(WindowEvent e)
{
// System.out.println("windowClosing");
if(mainPanel.quitGame())
{
frame.setVisible(false);
frame.dispose();
System.exit(0);
}
}
/* *
* from WindowAdapter.
*
* @see java.awt.event.WindowAdapter
*/
/*
public void windowClosed(WindowEvent e)
{
System.out.println("windowClosed");
}
*/
}
///////////////////////////////////////////////////////////////////
// JWindow for fullscreen mode
/*
public class JVirusWindow extends JWindow implements KeyListener
{
private JPanel mainPanel = null;
public JVirusWindow(Frame parent)
{
super(parent);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(screen);
this.setLocation(0, 0);
this.getContentPane().setLayout(new GridLayout(1, 1));
mainPanel = new JPanel(null);
mainPanel.setBackground(Color.black);
getContentPane().add(mainPanel);
}
}
*/
// JWindow for fullscreen mode
///////////////////////////////////////////////////////////////////
}
|
JVirusFrame |
|