mabe02 / lanterna

Java library for creating text-based GUIs
GNU Lesser General Public License v3.0
2.27k stars 242 forks source link

GridLayout should allow spans to be greater than the number of actual columns #460

Closed keithkml closed 4 years ago

keithkml commented 4 years ago

If you create a GridLayout but then only add one component to it, with a horizontal span of 2, you see this exception:

java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
    at com.googlecode.lanterna.gui2.GridLayout.getPreferredColumnWidths(GridLayout.java:543)
    at com.googlecode.lanterna.gui2.GridLayout.getPreferredSize(GridLayout.java:387)
    at com.googlecode.lanterna.gui2.Panel$DefaultPanelRenderer.getPreferredSize(Panel.java:241)
    at com.googlecode.lanterna.gui2.Panel$DefaultPanelRenderer.getPreferredSize(Panel.java:223)
    at com.googlecode.lanterna.gui2.AbstractComponent.calculatePreferredSize(AbstractComponent.java:194)
    at com.googlecode.lanterna.gui2.Panel.calculatePreferredSize(Panel.java:275)
    at com.googlecode.lanterna.gui2.AbstractComponent.getPreferredSize(AbstractComponent.java:178)
    at com.googlecode.lanterna.gui2.AbstractBasePane$ContentHolder$1.getPreferredSize(AbstractBasePane.java:433)
    at com.googlecode.lanterna.gui2.AbstractBasePane$ContentHolder$1.getPreferredSize(AbstractBasePane.java:426)
    at com.googlecode.lanterna.gui2.AbstractComponent.calculatePreferredSize(AbstractComponent.java:194)
    at com.googlecode.lanterna.gui2.AbstractComponent.getPreferredSize(AbstractComponent.java:178)
    at com.googlecode.lanterna.gui2.AbstractWindow.getPreferredSize(AbstractWindow.java:163)
    at com.googlecode.lanterna.gui2.DefaultWindowManager.prepareWindow(DefaultWindowManager.java:162)
    at com.googlecode.lanterna.gui2.DefaultWindowManager.prepareWindows(DefaultWindowManager.java:140)
    at com.googlecode.lanterna.gui2.MultiWindowTextGUI.drawGUI(MultiWindowTextGUI.java:243)
    at com.googlecode.lanterna.gui2.AbstractTextGUI.updateScreen(AbstractTextGUI.java:120)
    at com.googlecode.lanterna.gui2.MultiWindowTextGUI.updateScreen(MultiWindowTextGUI.java:223)
    at com.googlecode.lanterna.gui2.AbstractTextGUIThread.processEventsAndUpdate(AbstractTextGUIThread.java:85)
    at com.googlecode.lanterna.gui2.SeparateTextGUIThread.mainGUILoop(SeparateTextGUIThread.java:114)
    at com.googlecode.lanterna.gui2.SeparateTextGUIThread.access$000(SeparateTextGUIThread.java:44)
    at com.googlecode.lanterna.gui2.SeparateTextGUIThread$1.run(SeparateTextGUIThread.java:55)
mabe02 commented 4 years ago

That's now fixed, thanks