Thanks, Thanks, and Thanks. I notice in the example below that your
inheritance was different than mine. I did "from java.awt import swing"
I changed it to "import javax" and modified my class statement to look
like D- Man's example. Bingo, it works.
> On Thu, Apr 05, 2001 at 08:10:50AM -0400, cindy wrote:
> | I thought I couldn't access the method enableEvents() by inheriting JFrame.
> | The reason being is that this method is protected. I concluded that I have to
> | inherit Component to get access to this mrthod. Therefore, the tree structure
> | below and inheritance from JFrame wouldn't work for the method enableEvents().
> | Is this correct?
> Mostly. 'protected' (in Java, it is slightly different in C++) means
> that only subclasses and classes in the same package can access it.
> JFrame is a subclass of Component, and your class is a subclass of
> JFrame, therefore your class is a subclass of Component. You are
> correct up to the point where you say "inheritance from JFrame
> wouldn't work".
> If you've done some work in discrete math or logic this is basically
> the following axiom :
> if A -> B and B -> C then A -> C
> Here is an example :
> >>> import javax
> >>> import java
> >>> class MyFrame( javax.swing.JFrame ) :
> ... def __init__( self ) :
> ... self.super__enableEvents( java.awt.AWTEvent.WINDOW_EVENT_MASK )
> ... def processEvent( self , event ) :
> ... print "got an event"
> >>> aframe = MyFrame()
> >>> aframe.getContentPane().add( javax.swing.JLabel( "Jython is cool" ) )
> lAlignment=,horizontalTextPosition=,iconTextGap=4,labelFor=,text=Jython is cool,
> >>> aframe.show()
> got an event
> >>> got an event
> got an event
> This was an interactive interpreter session of mine. As you can see
> here, I didn't define getContentPane or setVisible, but they worked.
> This is because MyFrame is-a JFrame (is-a JComponent ... is-a
> Component ...). Through inheritance, instances of MyFrame ('aframe')
> have all of those public and protected members (functions and data).
> Also, at the end there you can see that processEvent was called when
> the frame was shown, when I gave it the focus (with the mouse) and
> when I removed the focus (I clicked in the terminal window to copy the
> text from).
> Perhaps the following tutorial sections may help you?
> Jython-users mailing list