cernoch/seaglass

JTabbedPane does not seem to be painting itself correctly

Closed this issue · 10 comments

What steps will reproduce the problem?
1. I designed my form using NetBeans 6.8 (Free Design - Java 6 layout
engine I think)
2. Set the LAF. My form has 2 tabs 

What is the expected output? What do you see instead?
- All the elements in the tabs get all bunched up. Sorry cannot send you a
screenshot.

What version of the product are you using? On what operating system?
0.1.5 seaglass on Java 6_18

Thanks!

Original issue reported on code.google.com by ashwin.j...@gmail.com on 1 Feb 2010 at 9:47

Actually, I realized that the tabs are not painting correctly. When you add a 
new tab
at runtime, the widgets on the previous tab still remain until you resize the 
frame
or do something that repaints the whole screen.

I absolutely love the Seaglass style.

Thanks again!

Original comment by ashwin.j...@gmail.com on 2 Feb 2010 at 10:16

Okay, this is quite likely. I'll verify it and get it fixed. The tabbed pane 
code is pretty rough at present. The goal is 
to have it working by version 0.2, which is (hopefully) the next release.

Original comment by kahuxtable on 3 Feb 2010 at 7:06

I should mark this as accepted. I have replicated this and am in the process of 
fixing it.

It turns out that the current layout code also doesn't account for borders, nor 
does it correctly center right-to-
left layouts.

Original comment by kahuxtable on 14 Feb 2010 at 6:57

  • Changed state: Started
Fixed in version 0.1.7.1.

Original comment by kahuxtable on 28 Feb 2010 at 4:36

  • Changed state: Fixed
Thank you!

Original comment by ashwin.j...@gmail.com on 28 Feb 2010 at 8:12

Hey, where did the download links to the JAR go?

Original comment by ashwin.j...@gmail.com on 1 Mar 2010 at 10:53

We moved the documentation out of the Google Code wiki and into the Maven site 
documentation. That's on my 
website and is at

   http://www.kathrynhuxtable.org/projects/site/seaglasslookandfeel/downloads.html

Sorry about that. We probably should have left some placeholder pages up, but 
sometimes a clean break works.

Original comment by kahuxtable on 2 Mar 2010 at 1:29

I tried the 0.1.7.1 release and it throws this error. It used to at least work
before. Now, it doesn't even start:

java.lang.ArrayIndexOutOfBoundsException: 0
        at
com.seaglasslookandfeel.ui.SeaGlassTabbedPaneUI.getCloseButtonBounds(SeaGlassTab
bedPaneUI.java:1137)
        at
com.seaglasslookandfeel.ui.SeaGlassTabbedPaneUI.calculateTabWidth(SeaGlassTabbed
PaneUI.java:1002)
        at
com.seaglasslookandfeel.ui.SeaGlassTabbedPaneUI.calculateMaxTabWidth(SeaGlassTab
bedPaneUI.java:1030)
        at
javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.calculateSize(BasicTab
bedPaneUI.java:2314)
        at
javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.minimumLayoutSize(Basi
cTabbedPaneUI.java:2265)
        at java.awt.Container.minimumSize(Container.java:1651)
        at java.awt.Container.getMinimumSize(Container.java:1636)
        at javax.swing.JComponent.getMinimumSize(JComponent.java:1716)
        at
javax.swing.GroupLayout$ComponentSpring.calculateNonlinkedMinimumSize(GroupLayou
t.java:2933)
        at
javax.swing.GroupLayout$ComponentSpring.calculateMinimumSize(GroupLayout.java:28
97)
        at javax.swing.GroupLayout$Spring.getMinimumSize(GroupLayout.java:1315)
        at
javax.swing.GroupLayout$ComponentSpring.calculatePreferredSize(GroupLayout.java:
2904)
        at javax.swing.GroupLayout$Spring.getPreferredSize(GroupLayout.java:1325)
        at javax.swing.GroupLayout$Group.getSpringSize(GroupLayout.java:1604)
        at javax.swing.GroupLayout$Group.calculateSize(GroupLayout.java:1590)
        at javax.swing.GroupLayout$Group.calculatePreferredSize(GroupLayout.java:1568)
        at javax.swing.GroupLayout$Spring.getPreferredSize(GroupLayout.java:1325)
        at javax.swing.GroupLayout$Group.getSpringSize(GroupLayout.java:1604)
        at javax.swing.GroupLayout$Group.calculateSize(GroupLayout.java:1588)
        at javax.swing.GroupLayout$Group.calculatePreferredSize(GroupLayout.java:1568)
        at javax.swing.GroupLayout$Spring.getPreferredSize(GroupLayout.java:1325)
        at javax.swing.GroupLayout$Group.getSpringSize(GroupLayout.java:1604)
        at javax.swing.GroupLayout$Group.calculateSize(GroupLayout.java:1588)
        at javax.swing.GroupLayout$Group.calculatePreferredSize(GroupLayout.java:1568)
        at javax.swing.GroupLayout$Spring.getPreferredSize(GroupLayout.java:1325)
        at javax.swing.GroupLayout.calculateAutopadding(GroupLayout.java:1050)
        at javax.swing.GroupLayout.prepare(GroupLayout.java:1037)
        at javax.swing.GroupLayout.preferredLayoutSize(GroupLayout.java:857)
        at java.awt.Container.preferredSize(Container.java:1599)
        at java.awt.Container.getPreferredSize(Container.java:1584)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)
        at java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:702)
        at java.awt.Container.preferredSize(Container.java:1599)
        at java.awt.Container.getPreferredSize(Container.java:1584)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)
        at
com.seaglasslookandfeel.ui.SeaGlassRootPaneUI$SeaGlassRootLayout.preferredLayout
Size(SeaGlassRootPaneUI.java:681)
        at java.awt.Container.preferredSize(Container.java:1599)
        at java.awt.Container.getPreferredSize(Container.java:1584)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)
        at java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:702)
        at java.awt.Container.preferredSize(Container.java:1599)
        at java.awt.Container.getPreferredSize(Container.java:1584)
        at java.awt.Window.pack(Window.java:706)
        at
org.jdesktop.application.SingleFrameApplication.initRootPaneContainer(SingleFram
eApplication.java:216)
        at
org.jdesktop.application.SingleFrameApplication.show(SingleFrameApplication.java
:463)
        at com.MyApp.startup(MyApp.java:20)
        at org.jdesktop.application.Application$1.run(Application.java:171)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269
)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174
)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Original comment by ashwin.j...@gmail.com on 2 Mar 2010 at 2:36

It works in 0.1.7.2. It's beautiful !!!!

Original comment by ashwin.j...@gmail.com on 13 Mar 2010 at 1:22

Great!

Original comment by kahuxtable on 13 Mar 2010 at 3:14