⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainserverframe.java

📁 Java mulitplayer strategy game. Adaptation of KDE Galaxy Conquest. (rules are changed - but still th
💻 JAVA
字号:
/*
 * MainServerFrame.java
 *
 * Created on 9 pa焏ziernik 2005, 09:44
 */

package net.sf.jawp.game.server.gui;

import javax.swing.JDesktopPane;
import javax.swing.JOptionPane;
import javax.swing.UIManager;

import net.sf.jawp.api.service.JAWPGameService;
import net.sf.jawp.gui.client.ClientTestFrame;
import net.sf.jawp.gui.client.JoinGameDialog;
import net.sf.jawp.util.BuildHelper;

/**
 * 
 * @author jarek
 */
public class MainServerFrame extends javax.swing.JFrame
{
	static
	{
		try
		{
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
			System.out.println("installed:"
					+ UIManager.getLookAndFeel().getName());
		}
		catch (final Exception e)
		{
			e.printStackTrace();
		}
	}

	private static final long serialVersionUID = 1L;

	//private final static Log LOG = Log.getLog(MainServerFrame.class );
	
	private ServerDataManager dataManger;

	private final FramesManager manager;

	/** Creates new form MainServerFrame */
	public MainServerFrame()
	{
		initComponents();
		this.setTitle("JAWP Game Server - " + BuildHelper.getBuildDesc());
		this.manager = FramesManager.create(this);
		updateState();
	}

	/**
	 * This method is called from within the constructor to initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is always
	 * regenerated by the Form Editor.
	 */
	// <editor-fold defaultstate="collapsed" desc=" Generated Code
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents()
    {
        javax.swing.JMenu exiMenu;

        serverDesktopPane = new javax.swing.JDesktopPane();
        jMenuBar1 = new javax.swing.JMenuBar();
        fileMenu = new javax.swing.JMenu();
        newGameMenuItem = new javax.swing.JMenuItem();
        loadMenuItem = new javax.swing.JMenuItem();
        saveMenuItem = new javax.swing.JMenuItem();
        exitMenuItem = new javax.swing.JMenuItem();
        jMenu5 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();
        windowMenu = new javax.swing.JMenu();
        joinGameMenuItem = new javax.swing.JMenuItem();
        jSeparator1 = new javax.swing.JSeparator();
        exiMenu = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        serverDesktopPane.setDragMode(javax.swing.JDesktopPane.OUTLINE_DRAG_MODE);
        serverDesktopPane.setPreferredSize(new java.awt.Dimension(640, 480));
        getContentPane().add(serverDesktopPane, java.awt.BorderLayout.CENTER);

        fileMenu.setText("File");
        newGameMenuItem.setText("New");
        newGameMenuItem.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                newGameMenuItemActionPerformed(evt);
            }
        });

        fileMenu.add(newGameMenuItem);

        loadMenuItem.setText("Load");
        loadMenuItem.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                loadMenuItemActionPerformed(evt);
            }
        });

        fileMenu.add(loadMenuItem);

        saveMenuItem.setText("Save");
        fileMenu.add(saveMenuItem);

        exitMenuItem.setText("Exit");
        exitMenuItem.setName("Exit");
        exitMenuItem.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                exitMenuItemActionPerformed(evt);
            }
        });

        fileMenu.add(exitMenuItem);

        jMenuBar1.add(fileMenu);

        jMenu5.setText("Run");
        jMenuBar1.add(jMenu5);

        jMenu2.setText("Options");
        jMenuBar1.add(jMenu2);

        windowMenu.setText("Window");
        joinGameMenuItem.setText("Local client");
        joinGameMenuItem.setToolTipText("Starts local client session");
        joinGameMenuItem.setEnabled(false);
        joinGameMenuItem.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                joinGameMenuItemActionPerformed(evt);
            }
        });

        windowMenu.add(joinGameMenuItem);

        windowMenu.add(jSeparator1);

        jMenuBar1.add(windowMenu);

        exiMenu.setText("Help");
        jMenuBar1.add(exiMenu);

        setJMenuBar(jMenuBar1);

        pack();
    }
    // </editor-fold>//GEN-END:initComponents

	private void joinGameMenuItemActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_joinGameMenuItemActionPerformed
	{//GEN-HEADEREND:event_joinGameMenuItemActionPerformed
		/*final JoinClientFrame joinFrame = new JoinClientFrame(getDataManger().getUserService());
		joinFrame.setLocation(50, 50);
		joinFrame.setVisible(true);
		this.serverDesktopPane.add(joinFrame);*/
		final JoinGameDialog jgd = new JoinGameDialog( this, true, getDataManger().getUserService());
		jgd.setVisible( true );
		final JAWPGameService gs = jgd.getGameService();
		jgd.dispose();
		
		//assert LOG.debug(jgd.getGameService());
		if ( gs != null )
		{
			final ClientTestFrame cform = new ClientTestFrame(gs);
			cform.setLocation(100, 100);
			cform.setVisible(true);
			this.serverDesktopPane.add(cform);
		}
	}//GEN-LAST:event_joinGameMenuItemActionPerformed

	private void newGameMenuItemActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_newGameMenuItemActionPerformed
	{//GEN-HEADEREND:event_newGameMenuItemActionPerformed
		if (getDataManger().isGame() )
		{
			// @todo: ask before destroying
			if ( JOptionPane.showConfirmDialog( this, "This will delete working games. Continue ?", 
					"Delete", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION)
			{
				getDataManger().destroyGame();
			}
			else
			{
				return;
			}
		}
		else if ( getDataManger().isStoredSystemAvailable() )
		{
			// @todo: ask before destroying
			if ( JOptionPane.showConfirmDialog( this, "This will delete stored games. Continue ?", 
					"Delete", JOptionPane.YES_NO_OPTION) != JOptionPane.OK_OPTION)
			{
				return;
			}
			
		}
		getDataManger().newGame();

		openServerWindow();
		updateState();
	}//GEN-LAST:event_newGameMenuItemActionPerformed

	private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_exitMenuItemActionPerformed
	{//GEN-HEADEREND:event_exitMenuItemActionPerformed
		getDataManger().dispose();
		dispose();
		System.exit(0);
	}//GEN-LAST:event_exitMenuItemActionPerformed

	private void loadMenuItemActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_loadMenuItemActionPerformed
	{//GEN-HEADEREND:event_loadMenuItemActionPerformed
		assert !getDataManger().isGame();
		getDataManger().loadGame();

		openServerWindow();
		updateState();
	}//GEN-LAST:event_loadMenuItemActionPerformed


	
	

	private void openServerWindow()
	{
		/*
		 * final ServerInternalFrame serverFrame = new ServerInternalFrame(
		 * getDataManger());
		 * 
		 * serverDesktopPane.add( serverFrame); serverFrame.setVisible( true);
		 * pack();
		 */
		this.manager.openServerStatusFrame(getDataManger());
	}

	/**
	 * @param args
	 *            the command line arguments
	 */
	public static void main(final String[] args)
	{
		java.awt.EventQueue.invokeLater(new Runnable()
		{
			public void run()
			{
				new MainServerFrame().setVisible(true);
			}
		});
	}

	public ServerDataManager getDataManger()
	{
		if (this.dataManger == null)
		{
			this.dataManger = ServerDataManager.create();
		}
		return this.dataManger;
	}

	public void setDataManger(final ServerDataManager dataManger)
	{
		this.dataManger = dataManger;
	}

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenuItem exitMenuItem;
    private javax.swing.JMenu fileMenu;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu5;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JMenuItem joinGameMenuItem;
    private javax.swing.JMenuItem loadMenuItem;
    private javax.swing.JMenuItem newGameMenuItem;
    private javax.swing.JMenuItem saveMenuItem;
    private javax.swing.JDesktopPane serverDesktopPane;
    private javax.swing.JMenu windowMenu;
    // End of variables declaration//GEN-END:variables

	/**
	 * updates buttons menus etc.
	 */
	private void updateState()
	{
		updateFileMenu();
	}

	private void updateFileMenu()
	{
		this.newGameMenuItem.setEnabled(!getDataManger().isGame());
		this.loadMenuItem.setEnabled(!getDataManger().isGame() && getDataManger().isStoredSystemAvailable());
		this.saveMenuItem.setEnabled(getDataManger().isGame());
		this.exitMenuItem.setEnabled(true);
	}

	final JDesktopPane getDesktop()
	{
		return this.serverDesktopPane;
	}

	final void enableJoinGame()
	{
		this.joinGameMenuItem.setEnabled( true );
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -