I would suggest placing the chart into a BoxLayout.Y_AXIS instead of what I assume is the center of a BorderLayout. The center of the BorderLayout stretches to take up available space and the chart aligns to the center. The box layout will give the chart the full width and its preferred height.