diff --git a/src/main/java/cz/muni/fi/pv168/project/ui/main/panel/TaskStatusPanel.java b/src/main/java/cz/muni/fi/pv168/project/ui/main/panel/TaskStatusPanel.java
index c636f5ed3ca769affbb84a07ceca55980668a176..e4589f29d237675cbabc5c9499c5ba60d586a396 100644
--- a/src/main/java/cz/muni/fi/pv168/project/ui/main/panel/TaskStatusPanel.java
+++ b/src/main/java/cz/muni/fi/pv168/project/ui/main/panel/TaskStatusPanel.java
@@ -3,61 +3,43 @@ package cz.muni.fi.pv168.project.ui.main.panel;
 import cz.muni.fi.pv168.project.data.task.TaskStatus;
 import cz.muni.fi.pv168.project.ui.resources.Icons;
 
-import javax.swing.Icon;
+import javax.swing.Box;
+import javax.swing.JLabel;
 import javax.swing.JPanel;
-import java.awt.Dimension;
-import java.awt.Graphics;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 
 public class TaskStatusPanel extends JPanel {
 
-    private TaskStatus taskStatus;
-    private boolean isUrgent;
-    private final boolean biggerIcons;
+    private final GridBagConstraints gbc;
+    private final boolean useBiggerIcons;
 
     public TaskStatusPanel(TaskStatus status, boolean isTaskUrgent, boolean useBiggerIcons) {
-        this.biggerIcons = useBiggerIcons;
-        setTaskStatus(status, isTaskUrgent);
+        super(new GridBagLayout());
+        this.useBiggerIcons = useBiggerIcons;
 
         this.setOpaque(false);
-        if (useBiggerIcons) {
-            this.setPreferredSize(new Dimension(24, 24));
-        } else {
-            this.setPreferredSize(new Dimension(16, 16));
-        }
+        gbc = new GridBagConstraints();
+        gbc.fill = GridBagConstraints.BOTH;
+        gbc.anchor = GridBagConstraints.NORTHWEST;
+        gbc.weightx = 0;
+        gbc.weighty = 1;
+
+        setTaskStatus(status, isTaskUrgent);
     }
 
     public void setTaskStatus(TaskStatus status, boolean isTaskUrgent) {
-        this.taskStatus = status;
-        this.isUrgent = isTaskUrgent;
-    }
+        this.removeAll();
 
-    @Override
-    protected void paintComponent(Graphics g) {
-        super.paintComponent(g);
-
-        Icon icon;
-        if (isUrgent) {
-            icon = biggerIcons ? Icons.TASK_STATUS_URGENT_ICON : Icons.TASK_STATUS_URGENT_SMALL_ICON;
-        } else {
-            switch (taskStatus) {
-                case PLANNED:
-                    icon = biggerIcons ? Icons.TASK_STATUS_PLANNED_ICON : Icons.TASK_STATUS_PLANNED_SMALL_ICON;
-                    break;
-                case IN_PROGRESS:
-                    icon = biggerIcons ? Icons.TASK_STATUS_IN_PROGRESS_ICON : Icons.TASK_STATUS_IN_PROGRESS_SMALL_ICON;
-                    break;
-                case FINISHED:
-                    icon = biggerIcons ? Icons.TASK_STATUS_FINISHED_ICON : Icons.TASK_STATUS_FINISHED_SMALL_ICON;
-                    break;
-                default:
-                    return;
-            }
-        }
+        gbc.gridy = 0;
+        this.add(new JLabel(Icons.getTaskStatusIcon(status, useBiggerIcons)), gbc);
+
+        if (isTaskUrgent && !status.equals(TaskStatus.FINISHED)) {
+            gbc.gridy = 1;
+            this.add(Box.createVerticalStrut(1), gbc);
 
-        if (icon != null) {
-            int x = (this.getWidth() - icon.getIconWidth()) / 2;
-            int y = (this.getHeight() - icon.getIconWidth()) / 2;
-            icon.paintIcon(this, g, x, y);
+            gbc.gridy = 2;
+            this.add(new JLabel(Icons.getUrgencyIcon(useBiggerIcons)), gbc);
         }
     }
 }
diff --git a/src/main/java/cz/muni/fi/pv168/project/ui/resources/Icons.java b/src/main/java/cz/muni/fi/pv168/project/ui/resources/Icons.java
index c39ccbb831ee2cad6b350c9104c572cae0e74728..0c9cbde55f0ad78e5c84d36252762291d8cc4d73 100644
--- a/src/main/java/cz/muni/fi/pv168/project/ui/resources/Icons.java
+++ b/src/main/java/cz/muni/fi/pv168/project/ui/resources/Icons.java
@@ -1,5 +1,7 @@
 package cz.muni.fi.pv168.project.ui.resources;
 
+import cz.muni.fi.pv168.project.data.task.TaskStatus;
+
 import javax.swing.*;
 import java.awt.Window;
 import java.net.URL;
@@ -76,4 +78,27 @@ public final class Icons {
             window.setIconImage(((ImageIcon) Icons.LOGO_ICON).getImage());
         }
     }
+
+    public static Icon getUrgencyIcon(boolean useBigIcons) {
+        return useBigIcons ? Icons.TASK_STATUS_URGENT_ICON : Icons.TASK_STATUS_URGENT_SMALL_ICON;
+    }
+
+    public static Icon getTaskStatusIcon(TaskStatus status, boolean useBigIcons) {
+        Icon result = null;
+
+        switch (status) {
+            case PLANNED:
+                result = useBigIcons ? TASK_STATUS_PLANNED_ICON : TASK_STATUS_PLANNED_SMALL_ICON;
+                break;
+            case IN_PROGRESS:
+                result = useBigIcons ? TASK_STATUS_IN_PROGRESS_ICON : TASK_STATUS_IN_PROGRESS_SMALL_ICON;
+                break;
+            case FINISHED:
+                result = useBigIcons ? TASK_STATUS_FINISHED_ICON : TASK_STATUS_FINISHED_SMALL_ICON;
+                break;
+            default:
+        }
+
+        return result;
+    }
 }