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

📄 joinpanel.java

📁 Java mulitplayer strategy game. Adaptation of KDE Galaxy Conquest. (rules are changed - but still th
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			}
		}
		
	}//GEN-LAST:event_playButtonActionPerformed

	private void playersTableMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_playersTableMouseClicked
	{//GEN-HEADEREND:event_playersTableMouseClicked
		int row = playersTable.getSelectedRow();
		
		final Player p = this.playersModel.getPlayerAtRow( row);
		
		selectPlayer(p);
	}//GEN-LAST:event_playersTableMouseClicked

	private void allGamesTableMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_allGamesTableMouseClicked
	{//GEN-HEADEREND:event_allGamesTableMouseClicked
		int row = allGamesTable.getSelectedRow();
		final GameWorld gw = getAllGamesModel().getGameAtRow(row);
		
		if ( gw != null)
		{
			assert LOG.debug("game selected: " + gw.getName());
			selectGameWorld( gw );
		}
	}//GEN-LAST:event_allGamesTableMouseClicked

	private void loginButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_loginButtonActionPerformed
	{//GEN-HEADEREND:event_loginButtonActionPerformed
		final String login = loginTextField.getText();
		final String password = PasswordUtil.encrypt(loginPasswordField.getText());
		final LoginService<JAWPGameService> logSrv = getUserService().initLogin(login);
		login( password, logSrv);
	}//GEN-LAST:event_loginButtonActionPerformed
	
	private void login(final String password, final LoginService<JAWPGameService> logSrv )
	{
		try
		{
			
			final SessionService<JAWPGameService> session = 
				logSrv.login(PasswordUtil.encryptMix(password , logSrv.getServerSeed() ));  
			if ( session != null)
			{
				setSessionService( session);
				goToGamesTab();
			}
			else	
			{
				GUIHelper.showError( this, MessageConst.LOGIN_FAILED, null);
				//System.out.println("login failed");
			}
		}
		catch (final LoginException le)
		{
			LOG.error( le, le);
			GUIHelper.showError( this, MessageConst.LOGIN_FAILED, le);
		}
	}
	
	private void selectGameWorld ( final GameWorld gw)
	{
		this.gameWorld = gw;
		this.playersTable.setModel( getPlayersModel());
		this.selectedPlayer = null;
		
		updateButtons();
	}
	
	
	private void selectPlayer(final Player p)
	{
		this.selectedPlayer = p;
		updateButtons();
	}

	private void updateButtons()
	{
		this.playButton.setEnabled( this.selectedPlayer != null && this.gameWorld != null);
		this.joinGameButton.setEnabled( this.selectedPlayer == null && this.gameWorld != null);
		this.quitGameButton.setEnabled( this.selectedPlayer != null && this.gameWorld != null);
	}
	
	private void goToGamesTab()
	{
		this.allGamesTable.setModel( getAllGamesModel());
		this.wizardTabbedPane.setSelectedIndex(2);
	}
	
	private void goToLoginTab()
	{
		this.wizardTabbedPane.setSelectedIndex(1);
		this.loginButton.setEnabled(this.isLoginValidated());
		this.registerButton.setEnabled( this.isRegisterValidated());
	}
	
	public final PlayersTableModel getPlayersModel()
	{
		if ( this.gameWorld == null)
		{
			return new PlayersTableModel();
		}
		final Collection<Player> players = getSessionService().getUserPlayersForGame(this.gameWorld.getKey());
		assert LOG.debug( "found players:" + players.size());
		this.playersModel =  new  PlayersTableModel( players);
		return this.playersModel;
	}
	
	public final GamesTableModel getAllGamesModel()
	{
	
		if (getSessionService() == null)
		{
			return new GamesTableModel();
		}
		if ( this.allGames == null)
		{
			
			final Collection<GameWorld> games = getSessionService().getGames();
			assert LOG.debug( "number of games: " + games.size());
			this.allGames = new GamesTableModel( games);
		}
		return this.allGames;
	}
	
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel allGamesPanel;
    private javax.swing.JTable allGamesTable;
    private javax.swing.JPanel connectionPanel;
    private javax.swing.JPanel gamesPanel;
    private javax.swing.JTextField hostTextField;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JButton joinGameButton;
    private javax.swing.JButton loginButton;
    private javax.swing.JPanel loginPanel;
    private javax.swing.JPasswordField loginPasswordField;
    private javax.swing.JTextField loginTextField;
    private javax.swing.JButton playButton;
    private javax.swing.JPanel playersPanel;
    private javax.swing.JTable playersTable;
    private javax.swing.JTextField portTextField;
    private javax.swing.JButton quitGameButton;
    private javax.swing.JPasswordField regConfirmPasswordField;
    private javax.swing.JTextField regLoginTextField;
    private javax.swing.JPasswordField regPasswordPasswordField;
    private javax.swing.JButton registerButton;
    private javax.swing.JTextField totalPlayersTextField;
    private javax.swing.JTabbedPane wizardTabbedPane;
    // End of variables declaration//GEN-END:variables
	
	
	private static class PlayersTableModel extends AbstractTableModel
	{
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;
		
		private ArrayList<Player> players;

		public PlayersTableModel( final Collection<Player> players)
		{
			this.players = new ArrayList<Player>( players);
		}
		
		public PlayersTableModel()
		{
			this.players = new ArrayList<Player>( 0);
		}
		
		public int getColumnCount()
		{
			return 1;
		}

		public int getRowCount()
		{
			return this.players.size();
		}

		public Object getValueAt(final int row, final int column)
		{
			final Player p = getPlayerAtRow( row);
			return p.getName();
		}
		
		public Player getPlayerAtRow(final int rowIndex)
		{
			if ( rowIndex < 0)
			{
				return null;
			}
			else
			{
				return this.players.get( rowIndex);
			}
		}
		
		
		public final Collection<Player> getPlayers()
		{
			return this.players;
		}

		public String getColumnName(final int column)
		{
			return "player name";
		}
		
		
	}
	
	private static class GamesTableModel extends AbstractTableModel
	{
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;
		
		private ArrayList<GameWorld> gameWorlds;
		
		public GamesTableModel( )
		{
			this.gameWorlds = new ArrayList<GameWorld>();
		}
		
		public GamesTableModel( final Collection<GameWorld> gws)
		{
			assert LOG.debug("model created for:" + gws.size());
			this.gameWorlds = new ArrayList<GameWorld>(gws.size());
			this.gameWorlds.addAll( gws );
		}
		
		public final int getColumnCount()
		{
			return 1;
		}

		public final int getRowCount()
		{
			//assert LOG.debug("row count is:" + this.gameWorlds.size());
			return this.gameWorlds.size();
		}

		public final Object getValueAt(final int row, final int column)
		{
			final GameWorld gw = getGameAtRow(row);
			//assert LOG.debug("game name:" + gw.getName());
			return gw.getName();
		}
		
		public final GameWorld getGameAtRow(final int row)
		{
			return this.gameWorlds.get( row);
		}

		public final String getColumnName(final int column)
		{
			return "game world name";
		}
		
		
	}

	public JAWPGameService getGameService()
	{
		return gameService;
	}

	public void setGameService(final JAWPGameService gameService)
	{
		this.gameService = gameService;
	}
	
	/**
	 * checks whether login fields contain value
	 */
	private boolean isLoginValidated()
	{
		return this.loginTextField.getText().length() > 1 
				&&  this.loginPasswordField.getText().length() > 1;
	}
	
	/**
	 * checks whether login fields contain value
	 */
	private boolean isRegisterValidated()
	{
		return this.regLoginTextField.getText().length() > 1 
				&&  this.regPasswordPasswordField.getText().length() > 1
				&&  this.regConfirmPasswordField.getText().length() > 1 && 
				this.regPasswordPasswordField.getText().equals( this.regConfirmPasswordField.getText() );
	}
	
	private void storeConnectionData(final String host, final int port)
	{
		this.preferences.setHost( host );
		this.preferences.setPort( port );
		PreferencesManager.getInstance().storeClientPreferences( this.preferences);
	}
}

⌨️ 快捷键说明

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