| Summary: | Eclipse freezes during the access to an exposed JList inside a JScrollPane | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Georg Konwisser <gekonwi> | ||||
| Component: | WindowBuilder | Assignee: | Konstantin Scheglov <Konstantin.Scheglov> | ||||
| Status: | CLOSED FIXED | QA Contact: | |||||
| Severity: | minor | ||||||
| Priority: | P3 | CC: | clayberg, gekonwi | ||||
| Version: | unspecified | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | Macintosh | ||||||
| OS: | Mac OS X - Carbon (unsup.) | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 208446 [details]
3 Minimalized classes that produce the error
ChildPanel inherits from ParentPanel, AccessingPanel just uses ParentPanel as a component - both produce the freeze/hanging behavior of Eclipse.
To reproduce the described error:
1. Copy these three classes into a Java Project
2. Open either ChildPanel or AccessingPanel in design view
3. Click on the exposed JList widget "getList()" in the "Components" box of design view
Found a WorkAround!!! As described this error occurs during an access on an exposed JList which is inside a (not exposed!) JScrollPane. And that's the answer: you have to expose all the surrounding components as well! In other cases, where I used components that have exposed buttons inside an internal JPanel, this error did also occur - until I exposed the internal JPanel which contained the buttons as well. There is also a strange behaviour if you use components which expose JTextFields or JComboBoxes inside of internal JPanels (without exposing the internal JPanel) - it does not cause this massive freezing but it places the selection of these JTextFields and JComboBoxes wrong, after exposing the surrounding JPanel it places everything right again. 1. I don't see freeze, but I see exception, still not good. 2. I've fixed this in trunk. We actually should not manage JList exposed like this by GridBagLayout, because JList is not direct child of its parent, it is parent of internal JPanel. This feature was known long time ago in SWT, but now I've fixed it for Swing too. |
Build Identifier: 20110916-0149 Everytime I use GridBagLayout and expose a JList inside a JScrollPane (let's say in class ParentPanel), other visual classes that try to access to this exposed JList cause a total hanging/freeze/crash of my whole Eclipse (it is shown as "not reacting"). This happens to classes that use ParentPanel as well as to classes that inherit from ParentClass. Reproducible: Always Steps to Reproduce: 1. Create a JPanel-class (ParentPanel) 2. Create a JPanel-class (ChildPanel) and let it inherit from ParentPanel 3. Set the layout of ParentPanel to GridBagLayout 4. Add a JScrollPane to ParentPanel (in cell [0,0]) 5. Add a JList inside the JScrollPane 6. Expose the JList 7. Open ChildPanel in design view 8. Click on the inherited widget ("getList()") in the "Components" box