public Dimension getPreferredSize() { // Try to use dimension from containing scroll panel to expand to full size. Dimension pref = super.getPreferredSize(); Dimension par = null; if(getParent()!=null && getParent().getParent() instanceof JScrollPane) { JScrollPane scroll = (JScrollPane)getParent().getParent(); par = scroll.getSize(); Border border = scroll.getBorder(); if(border!=null) { Insets insets = scroll.getBorder().getBorderInsets(scroll); par.width -= insets.left + insets.right; par.height -= insets.top + insets.bottom; } } // System.out.println("par: "+par); int prefwidth = pref!=null ? pref.width : 0; int prefheight = pref!=null ? pref.height : 0; int parwidth = par!=null ? par.width : 0; int parheight = par!=null ? par.height : 0; Dimension ret = new Dimension(Math.max(prefwidth, parwidth), Math.max(prefheight, parheight)); return ret; }
this.setResizeWeight(0.5); JPanel testcases = new ScrollablePanel(null, false, true); testcases.setLayout(new GridBagLayout()); testcases.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED), " Test suite settings "));
this.setResizeWeight(0.5); JPanel testcases = new ScrollablePanel(null, false, true); testcases.setLayout(new GridBagLayout()); testcases.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED), " Test suite settings "));