6 Commits

  1. 145
      src/main/java/de/tims/gameexplorer/GameExplorer.java

145
src/main/java/de/tims/gameexplorer/GameExplorer.java

@ -25,22 +25,30 @@ public class GameExplorer {
private JPanel border4; private JPanel border4;
private JPanel border5; private JPanel border5;
private JPanel border6; private JPanel border6;
private JPanel border7;
private JButton loginBtn; private JButton loginBtn;
private JButton fleetstormBtn; private JButton fleetstormBtn;
private JButton fourwinsBtn; private JButton fourwinsBtn;
private JButton tictactoeBtn; private JButton tictactoeBtn;
private JButton leaderboardBtn; private JButton leaderboardBtn;
private JButton logoutBtn;
private JButton exitBtn;
private JButton backBtn; private JButton backBtn;
private JLabel username; private JLabel username;
private JLabel loginWarning; private JLabel loginWarning;
private JLabel playerName;
private JLabel playerPoints;
private JLabel actualPlayerName;
private JLabel actualPlayerPoints;
private JLabel chosenGame; private JLabel chosenGame;
private JTextField usernameInput; private JTextField usernameInput;
private Dimension minSize; private Dimension minSize;
private Dimension loginBtnSize; private Dimension loginBtnSize;
private Dimension btnSize; private Dimension btnSize;
private Dimension smallBtnSize;
private GridBagConstraints gbc; private GridBagConstraints gbc;
private static final String playerFile = "src/main/java/resources/player_data.csv";
private static final String PLAYER_FILE = "src/main/java/resources/player_data.csv";
private enum Game { FLEETSTORM, FOURWINS, TICTACTOE, LEADERBOARD }; private enum Game { FLEETSTORM, FOURWINS, TICTACTOE, LEADERBOARD };
private Game actualGame; private Game actualGame;
@ -52,12 +60,12 @@ public class GameExplorer {
frame = new JFrame("1000 infomagische Spiele"); frame = new JFrame("1000 infomagische Spiele");
minSize = new Dimension(400, 300);
minSize = new Dimension(480, 360);
loginBtnSize = new Dimension(91, 20); loginBtnSize = new Dimension(91, 20);
btnSize = new Dimension(160, 40); btnSize = new Dimension(160, 40);
smallBtnSize = new Dimension(75, 30);
gbc = new GridBagConstraints(); gbc = new GridBagConstraints();
buildExplorerPanel();
buildLoginPanel(); buildLoginPanel();
buildNavigationPanel(); buildNavigationPanel();
buildGamePanels(); buildGamePanels();
@ -75,6 +83,11 @@ public class GameExplorer {
explorerPanel = new JPanel(); explorerPanel = new JPanel();
explorerPanel.setLayout(new GridBagLayout()); explorerPanel.setLayout(new GridBagLayout());
playerName = new JLabel("Spieler:");
playerPoints = new JLabel("Punkte:");
actualPlayerName = new JLabel(actualPlayer.getName());
actualPlayerPoints = new JLabel("" + actualPlayer.getPoints());
fleetstormBtn = new JButton("Schiffe versenken"); fleetstormBtn = new JButton("Schiffe versenken");
fleetstormBtn.setPreferredSize(btnSize); fleetstormBtn.setPreferredSize(btnSize);
fleetstormBtn.addActionListener(new GameAction()); fleetstormBtn.addActionListener(new GameAction());
@ -87,6 +100,12 @@ public class GameExplorer {
leaderboardBtn = new JButton("Leaderboard"); leaderboardBtn = new JButton("Leaderboard");
leaderboardBtn.setPreferredSize(btnSize); leaderboardBtn.setPreferredSize(btnSize);
leaderboardBtn.addActionListener(new GameAction()); leaderboardBtn.addActionListener(new GameAction());
logoutBtn = new JButton("Logout");
logoutBtn.setPreferredSize(smallBtnSize);
logoutBtn.addActionListener(new LogoutAction());
exitBtn = new JButton("Exit");
exitBtn.setPreferredSize(smallBtnSize);
exitBtn.addActionListener(new ExitAction());
border1 = new JPanel(); border1 = new JPanel();
border1.setOpaque(false); border1.setOpaque(false);
@ -98,51 +117,119 @@ public class GameExplorer {
border4.setOpaque(false); border4.setOpaque(false);
border5 = new JPanel(); border5 = new JPanel();
border5.setOpaque(false); border5.setOpaque(false);
border7 = new JPanel();
border7.setOpaque(false);
gbc.weightx = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.insets = new Insets(0, 0, 0, 0);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 0; gbc.gridy = 0;
gbc.weighty = 0.2;
gbc.gridwidth = 3;
gbc.weighty = 1.0 / 6;
explorerPanel.add(border1, gbc); explorerPanel.add(border1, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 1; gbc.gridy = 1;
gbc.gridwidth = 3;
gbc.weighty = 0.0; gbc.weighty = 0.0;
explorerPanel.add(fleetstormBtn, gbc); explorerPanel.add(fleetstormBtn, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 2; gbc.gridy = 2;
gbc.weighty = 0.2;
gbc.gridwidth = 3;
gbc.weighty = 1.0 / 6;
explorerPanel.add(border2, gbc); explorerPanel.add(border2, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 3; gbc.gridy = 3;
gbc.gridwidth = 3;
gbc.weighty = 0.0; gbc.weighty = 0.0;
explorerPanel.add(fourwinsBtn, gbc); explorerPanel.add(fourwinsBtn, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 4; gbc.gridy = 4;
gbc.weighty = 0.2;
gbc.gridwidth = 3;
gbc.weighty = 1.0 / 6;
explorerPanel.add(border3, gbc); explorerPanel.add(border3, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 5; gbc.gridy = 5;
gbc.gridwidth = 3;
gbc.weighty = 0.0; gbc.weighty = 0.0;
explorerPanel.add(tictactoeBtn, gbc); explorerPanel.add(tictactoeBtn, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 6; gbc.gridy = 6;
gbc.weighty = 0.2;
gbc.gridwidth = 3;
gbc.weighty = 1.0 / 6;
explorerPanel.add(border4, gbc); explorerPanel.add(border4, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 7; gbc.gridy = 7;
gbc.gridwidth = 3;
gbc.weighty = 0.0; gbc.weighty = 0.0;
explorerPanel.add(leaderboardBtn, gbc); explorerPanel.add(leaderboardBtn, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 8; gbc.gridy = 8;
gbc.weighty = 0.2;
gbc.gridwidth = 3;
gbc.weighty = 1.0 / 6;
explorerPanel.add(border5, gbc); explorerPanel.add(border5, gbc);
gbc.gridx = 0;
gbc.gridy = 9;
gbc.gridwidth = 1;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.LINE_END;
gbc.insets = new Insets(0, 0, 0, 5);
explorerPanel.add(logoutBtn, gbc);
gbc.gridx = 2;
gbc.gridy = 9;
gbc.gridwidth = 1;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.LINE_START;
gbc.insets = new Insets(0, 5, 0, 0);
explorerPanel.add(exitBtn, gbc);
gbc.anchor = GridBagConstraints.CENTER;
gbc.insets = new Insets(0, 0, 0, 0);
gbc.gridx = 0;
gbc.gridy = 10;
gbc.gridwidth = 3;
gbc.weighty = 1.0 / 6;
explorerPanel.add(border7, gbc);
gbc.gridx = 0;
gbc.gridy = 11;
gbc.gridwidth = 1;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.LINE_END;
explorerPanel.add(playerName, gbc);
gbc.gridx = 2;
gbc.gridy = 11;
gbc.gridwidth = 1;
gbc.weighty = 0.0;
gbc.insets = new Insets(0, 5, 0, 0);
gbc.anchor = GridBagConstraints.LINE_START;
explorerPanel.add(actualPlayerName, gbc);
gbc.gridx = 0;
gbc.gridy = 12;
gbc.gridwidth = 1;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.LINE_END;
explorerPanel.add(playerPoints, gbc);
gbc.gridx = 2;
gbc.gridy = 12;
gbc.gridwidth = 1;
gbc.weighty = 0.0;
gbc.insets = new Insets(0, 5, 0, 0);
gbc.anchor = GridBagConstraints.LINE_START;
explorerPanel.add(actualPlayerPoints, gbc);
} }
private void buildLoginPanel() { private void buildLoginPanel() {
@ -156,7 +243,10 @@ public class GameExplorer {
loginWarning = new JLabel(); loginWarning = new JLabel();
usernameInput = new JTextField(8); usernameInput = new JTextField(8);
gbc.weighty = 0;
gbc.gridwidth = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 0; gbc.gridy = 0;
gbc.insets = new Insets(0, 0, 5, 0); gbc.insets = new Insets(0, 0, 5, 0);
@ -190,7 +280,9 @@ public class GameExplorer {
border6 = new JPanel(); border6 = new JPanel();
border6.setOpaque(false); border6.setOpaque(false);
gbc.gridwidth = 1;
gbc.weighty = 0.0; gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 0; gbc.gridy = 0;
gbc.weightx = 0.0; gbc.weightx = 0.0;
@ -238,15 +330,16 @@ public class GameExplorer {
if (!userInput.equals("")) { if (!userInput.equals("")) {
loginWarning.setText(""); loginWarning.setText("");
manager.loadPlayers(playerFile);
manager.loadPlayers(PLAYER_FILE);
actualPlayer = manager.selectPlayer(userInput); actualPlayer = manager.selectPlayer(userInput);
buildExplorerPanel();
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.remove(loginPanel); frame.remove(loginPanel);
frame.add(explorerPanel); frame.add(explorerPanel);
frame.revalidate(); frame.revalidate();
frame.repaint(); frame.repaint();
System.out.println("Actual Player: " + actualPlayer.getName() + ", Points: " + actualPlayer.getPoints());
} else { } else {
loginWarning.setText("Kein Name eingegeben!"); loginWarning.setText("Kein Name eingegeben!");
} }
@ -283,6 +376,30 @@ public class GameExplorer {
} }
} }
private class LogoutAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
manager.savePlayers(PLAYER_FILE);
buildLoginPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.remove(explorerPanel);
frame.add(loginPanel);
frame.revalidate();
frame.repaint();
}
}
private class ExitAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
manager.savePlayers(PLAYER_FILE);
System.exit(0);
}
}
private class BackAction implements ActionListener { private class BackAction implements ActionListener {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -300,6 +417,8 @@ public class GameExplorer {
gamePanel.remove(leaderboardPanel); gamePanel.remove(leaderboardPanel);
} }
actualPlayerPoints.setText("" + actualPlayer.getPoints());
frame.remove(gamePanel); frame.remove(gamePanel);
frame.add(explorerPanel); frame.add(explorerPanel);
frame.revalidate(); frame.revalidate();

Loading…
Cancel
Save