Я перетаскиваю компонент из одного кадра на главном мониторе в другой кадр на дополнительном мониторе, и пока я перетаскиваю компонент, окрашенный в стеклянную панель, я вижу стеклянную панель поверх основного движителя, но после того, как мышь достигает вторичный монитор, стекло исчезает? Может ли кто-нибудь помочь мне в этом? Как я могу закрасить стекло над вторичным монитором?
Вот некоторые части моего кода:
public class Main_Frame extends JFrame
{
public Main_Frame (){
//adding the content of main JFrame
setGlassPane(new ImageGlassPane());
//detect other screens and making object of Second_Frame for each
}
}
public class Second_Frame extends JDialog{
public Second_Frame(){
super(new Frame(MultiMonitor.getInstance().getNextDevice().getDefaultConfiguration()),
Title, false);
setGlassPane(new ImageGlassPane());
}
}
public class ImageGlassPane() extends JPanel{
public ImageGlassPane() {
setOpaque(false);
}
protected void paintComponent(Graphics g) {
if ( !isVisible()) {
return;
}
Graphics2D g2 = (Graphics2D) g.create();
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
int x = (int) (location.getX() - (width * zoom / 2));
int y = (int) (location.getY() - (height * zoom / 2));
if (visibleRect != null) {
g2.setClip(visibleRect);
}
if (visibleRect != null) {
Area clip = new Area(visibleRect);
g2.setClip(clip);
}
g2.drawImage(image, x, y, (int) (width * zoom), (int) (height * zoom), null);
}
}