Появляется старинное-java окно | Видно только при создании скриншота
При многократном нажатии по значку программы в панели с приложениями:
В определенный момент появляется такое необычное явление:
(Глазом его не заметно, только если сделать скриншот)
Обнаружил я его во время тестирования программы, которая делает снимок экрана , вот собственно и код:
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Robot;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class JBug extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
// Создаем JFrame
JBug frame = new JBug();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public JBug() {
setUndecorated(true);
setBounds(100, 100, 450, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setOpacity(.99f);
contentPane = new JPanel() {
// Отрисовка скрина
@Override
public void paint(Graphics g) {
double size = 1.5; // Масштаб (а то у меня почему то получался кривой снимок экрана)
try {
g.drawImage(new Robot().createScreenCapture(new Rectangle(
(int) (getLocationOnScreen().x*size),
(int) (getLocationOnScreen().y*size),
(int) (getWidth()*size),
(int) (getHeight()*size)
)),
0, 0, getWidth(), getHeight(),null);
} catch (AWTException e) {
e.printStackTrace();
}
}
};
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
}
}
Хотелось бы получить такое же окно (и что-нибудь делать с ним), а не его снимок
Так же было бы неплохо узнать, почему размер этого окна нельзя изменить, почему у него такой необычный стиль
И узнать есть ли этот эффект на других ОС
Моя операционная система: Windows 10

