Coverage Summary for Class: EndGamePanel (it.polimi.ingsw.Client.GUI.Panels)
| Class | Class, % | Method, % | Branch, % | Line, % |
|---|---|---|---|---|
| EndGamePanel | 0% (0/1) | 0% (0/2) | 0% (0/2) | 0% (0/33) |
1 package it.polimi.ingsw.Client.GUI.Panels; 2 3 import it.polimi.ingsw.Client.GUI.Context; 4 import it.polimi.ingsw.Model.PlayerBoard; 5 6 import javax.swing.*; 7 import java.awt.*; 8 import java.io.IOException; 9 import java.util.List; 10 11 import static it.polimi.ingsw.Client.GUI.IconLoader.sky; 12 import static it.polimi.ingsw.Client.GUI.IconLoader.winnerText; 13 14 /** 15 * Panel showing game's winner(s); it allows user to close the game or join a new lobby 16 */ 17 public class EndGamePanel extends JPanel { 18 19 public EndGamePanel(List<PlayerBoard> playerBoards, Context ctx) { 20 //background label 21 JLabel winnersBackground = new JLabel(sky); 22 winnersBackground.setLayout(null); 23 winnersBackground.setBounds(0, 0, 1080, 720); 24 this.add(winnersBackground); 25 //title's label 26 JLabel WinTitle = new JLabel(winnerText); 27 JLabel winnersNames = new JLabel(); 28 winnersNames.setFont(new Font("Monospaced", Font.BOLD, 22)); 29 //create String containing winner(s)'s names 30 StringBuilder winnersText = new StringBuilder("<html>The winner is/are:<br>"); 31 for (PlayerBoard playerBoard : playerBoards) { 32 winnersText.append(playerBoard.getNickname()); 33 winnersText.append("<br>"); 34 } 35 winnersText.append("</html>"); 36 winnersNames.setText(winnersText.toString()); 37 JButton closeButton = new JButton("Close game"); 38 closeButton.addActionListener(e -> System.exit(0)); 39 JButton startButton = new JButton("Play again"); 40 startButton.addActionListener(e -> { 41 try { 42 ctx.getSocketWrapper().close(); 43 } catch (IOException ex) { 44 throw new RuntimeException(ex); 45 } 46 ctx.getWindow().changeView(new StartPanel(ctx)); 47 }); 48 //---ABSOLUTE POSITIONING--- 49 WinTitle.setBounds(250, 10, 523, 120); 50 winnersNames.setBounds(0, 200, 1080, 150); 51 closeButton.setBounds(350, 450, 130, 65); 52 startButton.setBounds(530, 450, 130, 65); 53 //add components to background label 54 winnersBackground.add(WinTitle); 55 winnersBackground.add(winnersNames); 56 winnersBackground.add(closeButton); 57 winnersBackground.add(startButton); 58 winnersBackground.setOpaque(true); 59 } 60 }