Hi,
I've been working on a avalonized (Fortress) gui thing. The way I've dealt with this is having a 'SwingView' service that has the method 'public java.awt.Component getComponent()'. The implementation has a member variable that is the Component rather than being one itself

Charles

J Aaron Farr wrote:

Hello.

I'm familiar with using a Swing Container, but what about a Swing component? I'd like to have a component which is a Swing class, such as a JInternalFrame. The container looks up the component and adds it do the larger Swing desktop
frame. Problem is, the component is a proxy class so I get
ClassCastExceptions. Is there any other way to do this?

Code examples:

interface MyComponent {
...
}

class MySwingComponent extends JInternalFrame implements MyComponent {
...
}

inside Container :

JDesktopPane desktop = new JDesktopPane();

MyComponent c = (MyComponent) m_serviceManager.lookup(MyComponent.ROLE);
MySwingComponent swingC = (SwingComponent) c; <-- this throws an error

desktop.add(swingC);

I'd rather not have to cast the component anyway, but even if I have
MyComponent be an abstract class which extends JInternalFrame, I still get a
ClassCastException, but this time at the lookup.(MyComponent.ROLE) line. From
this I gather that one cannot lookup Abstract classes, but only interfaces
(yes?).
Since it's the container which is using this component, I could manual
initialize it, but if there is a more elegant way, I'd rather use that. I
suppose I could just have the component be a wrapper and return a
JInternalFrame from some method but I'd rather extend for simplicity (or is
this a bad idea?). Has anyone found a better way to use Swing components?

jaaron

jaaron

__________________________________________________
Do you Yahoo!?
Yahoo! Shopping - Send Flowers for Valentine's Day
http://shopping.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to