Java
- 5 ответов
- 0 вопросов
2
Вклад в тег
public class NonResponsiveWindow extends JFrame
{
public NonResponsiveWindow ()
{
super ();
setLayout ( new BorderLayout () );
add ( new JPanel()
{
{
setOpaque ( false );
}
public boolean contains ( int x, int y )
{
return false;
}
public boolean contains ( Point p )
{
return false;
}
protected void paintComponent ( Graphics g )
{
super.paintComponent ( g );
Graphics2D g2d = ( Graphics2D ) g;
g2d.setRenderingHint ( RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON );
g2d.setComposite ( AlphaComposite.getInstance ( AlphaComposite.SRC_OVER, 0.5f ) );
g2d.setPaint ( Color.GRAY );
Area area = new Area ( new Ellipse2D.Double ( 0, 0, getWidth (), getHeight () ) );
area.subtract ( new Area (
new Ellipse2D.Double ( 25, 25, getWidth () - 50, getHeight () - 50 ) ) );
g2d.fill ( area );
}
public Dimension getPreferredSize ()
{
return new Dimension ( 300, 300 );
}
} );
setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
setAlwaysOnTop ( true );
setUndecorated ( true );
AWTUtilities.setWindowOpaque ( this, false );
pack ();
}
public boolean contains ( int x, int y )
{
return false;
}
public boolean contains ( Point p )
{
return false;
}
public static void main ( String[] args )
{
new NonResponsiveWindow ().setVisible ( true );
}
}
А если например после получаения сигнала воспроизводить его но уже для другово окна?Это должно быть вполне реализуемо засчёт стандартных средств (нужно лишь корректно передавать координаты низлежащему окну).