Coverage Summary for Class: Window (it.polimi.ingsw.Client.GUI)

Class Class, % Method, % Branch, % Line, %
Window 0% (0/1) 0% (0/5) 0% (0/4) 0% (0/16)


1 package it.polimi.ingsw.Client.GUI; 2  3 import javax.swing.*; 4 import java.awt.*; 5  6 import static it.polimi.ingsw.Client.GUI.IconLoader.logo; 7  8 /** 9  * Window creates the top-level container (Java Swing component) onto which the game will be rendered 10  */ 11 public class Window { 12  /** 13  * Frame that will contain GUI's game version 14  */ 15  private final JFrame frame; 16  17  public Window() { 18  //create frame and set its properties 19  this.frame = new JFrame("Eriantys"); 20  assert logo != null; 21  frame.setIconImage(logo.getImage()); 22  frame.setMinimumSize(new Dimension(1080, 720)); 23  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 24  frame.setVisible(true); 25  frame.setResizable(false); 26  } 27  28  /** 29  * Remove all previous frame's contents and add a new JComponent 30  * 31  * @param newView Component that will be drawn inside the frame 32  */ 33  public void changeView(JComponent newView) { 34  SwingUtilities.invokeLater(() -> { 35  frame.getContentPane().removeAll(); 36  frame.add(newView); 37  frame.getContentPane().validate(); 38  frame.getContentPane().repaint(); 39  frame.pack(); 40  }); 41  } 42  43  /** 44  * @return GUI'S frame 45  */ 46  public JFrame getFrame() { 47  return frame; 48  } 49 }