repaint embedded AWT frame [message #456718] |
Tue, 07 June 2005 10:41  |
Eclipse User |
|
|
|
Originally posted by: simonm.iptech.no.spam.demon.co.uk
I embed an AWT frame in an SWT composite with
Composite composite = new Composite(mainComposite, SWT.EMBEDDED |
SWT.BORDER);
Frame frame = SWT_AWT.new_Frame(composite);
Later I add a JPanel to the frame with
JPanel panel = getDymanicallyGeneratedPanel();
frame.add(panel);
and at this stage I want to force a repaint so that I see the new
JPanel. I was hoping that some combination of composite.redraw(),
frame.repaint(), or frame.invalidate() would do this, but the only way
I've found is to resize the composite, which isn't very satisfactory.
Can anyone suggest a way to force a repaint more directly?
Thanks,
Simon Morris
|
|
|
|
|
Re: repaint embedded AWT frame [message #457829 is a reply to message #457123] |
Tue, 05 July 2005 11:37  |
Eclipse User |
|
|
|
Originally posted by: simonm.iptech.no.spam.demon.co.uk
On Fri, 17 Jun 2005 14:27:49 +0100, Simon Morris
<simonm@iptech.no.spam.demon.co.uk> wrote:
>On Fri, 17 Jun 2005 11:39:03 +0000 (UTC), not@important.com (Volker
>Pilz) wrote:
>
>>Simon Morris wrote:
>>
>>> and at this stage I want to force a repaint so that I see the new
>>> JPanel. I was hoping that some combination of composite.redraw(),
>>> frame.repaint(), or frame.invalidate() would do this, but the only way
>>> I've found is to resize the composite, which isn't very satisfactory.
>>> Can anyone suggest a way to force a repaint more directly?
>>
>>I had the same Problem. Try the following:
>>composite.setVisible(false);
>>[your code for update the content]
>>composite.setVisible(true);
>>
>>This works fine for me.
>>
>
>That solves my problem - thanks very much.
>
In fact the call to setVisible(true) worked on its own, and avoided
the flicker produced by setVisible(false) then setVisible(true).
S.
|
|
|
Powered by
FUDForum. Page generated in 0.03917 seconds