/** * */ package org.jdesktop.swingx; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import java.awt.Color; import java.awt.Dimension; import javax.swing.JPanel; import org.jdesktop.test.EDTRunner; import org.junit.Test; import org.junit.runner.RunWith; /** * * @author Karl George Schaefer */ @RunWith(EDTRunner.class) public class HorizontalLayoutTest { /** * SwingX Issue #666: incorrect calculation of preferred size. */ @Test public void testLayout() { JPanel panel = new JPanel(new HorizontalLayout()); JPanel p = new JPanel(); p.setOpaque(true); p.setBackground(Color.RED); p.setPreferredSize(new Dimension(50, 25)); panel.add(p); p = new JPanel(); p.setOpaque(true); p.setBackground(Color.WHITE); p.setPreferredSize(new Dimension(125, 15)); panel.add(p); p = new JPanel(); p.setOpaque(true); p.setBackground(Color.BLUE); p.setPreferredSize(new Dimension(30, 30)); panel.add(p); assertThat(new Dimension(205, 30), is(panel.getPreferredSize())); } /** * SwingX Issue #1443: incorrect calculation of preferred size with gaps. */ @Test public void testLayoutWithGaps() { JPanel panel = new JPanel(new HorizontalLayout(5)); JPanel p = new JPanel(); p.setOpaque(true); p.setBackground(Color.RED); p.setPreferredSize(new Dimension(50, 25)); panel.add(p); p = new JPanel(); p.setOpaque(true); p.setBackground(Color.WHITE); p.setPreferredSize(new Dimension(125, 15)); panel.add(p); p = new JPanel(); p.setOpaque(true); p.setBackground(Color.BLUE); p.setPreferredSize(new Dimension(30, 30)); panel.add(p); assertThat(new Dimension(215, 30), is(panel.getPreferredSize())); } }