/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.swing; import lombok.Getter; import lombok.Setter; import javax.swing.*; import java.awt.*; public class LinedBoxPanel extends JPanel { @Getter private final boolean horizontal; @Getter @Setter private int spacing = 6; private boolean needsSpacer = false; public LinedBoxPanel(boolean horizontal) { this.horizontal = horizontal; setLayout(new BoxLayout(this, horizontal ? BoxLayout.X_AXIS : BoxLayout.Y_AXIS)); setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); } public LinedBoxPanel fullyPadded() { setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); return this; } public void addElement(Component component) { if (needsSpacer) { add(horizontal ? Box.createHorizontalStrut(spacing) : Box.createVerticalStrut(spacing)); } add(component); needsSpacer = true; } public void addGlue() { add(horizontal ? Box.createHorizontalGlue() : Box.createVerticalGlue()); needsSpacer = false; } }