"прозрачные" окна в свинге

Mar 17, 2010 10:45

кто-нибудь сталкивался с аналогичной проблемой?

суть: мы используем JDeskopPane, который инициализируется так:


desktop = new JDesktopPane() {
public void paint(Graphics g) {
setOpaque(true);
super.paint(g);
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
paintJetaLogo(g.create());
}
};

protected void paintJetaLogo(Graphics g) {
int aw, ah = 54, fh = 20;
String logoStr = "НАША МАРКА";

Font afont = new Font(g.getFont().getFamily(), 0, fh);
Rectangle2D r = afont.getStringBounds(logoStr, ((Graphics2D) g)
.getFontRenderContext());

aw = (int) r.getWidth();
ah = (int) aw / 10;
Dimension screenSize = getSize();
int x = (int) screenSize.getWidth() / 2 - aw / 2;
int y = (int) screenSize.getHeight() / 3 - ah / 3;

g.setColor(Color.LIGHT_GRAY);
g.setFont(afont);
g.drawString(logoStr, x, y + ah + fh);

g.drawImage(ImageCollection.icJetaLogo.getImage(), x, y, aw, ah, null);
}

в итоге иногда (!) возникает глюк при перерисовке JInternalFrame, которые в нём находятся: при перетаскивании окна мышкой, содержимое окна не перерисовывается, а рисуется вместо этого фон, который под окном.

причём глюк этот проявляется только в 1.6, а в 1.5 его нет.
Previous post Next post
Up