Перемещение Undecorated окна - Java
Формулировка задачи:
Всем привет мужики. Сделал следущее:
У главной формы установил undecorated(true);
Это привело к тому что я остался без рамки фрейма --- так и задумывал.
Но! Возникла сдедущая беда...... Теперь незнаю как сделать так чтобы окно можно было переносить.
Т.е тупо взяться за любую область окна и перенести. Вот так хочу сделать.
И собственно еще такой вопрос.
Для этого окна делаю прозрачность через .setOpacity(0.5f);
B вместе с фреймом становятся прозрачным все объекты на этой форме... как исправить такую беду?
Решение задачи: «Перемещение Undecorated окна»
textual
Листинг программы
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test extends JFrame {
private static final long serialVersionUID = 1802199483736051124L;
public Test() throws IOException {
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(280, 10, 1024, 790);
setResizable(false);
setUndecorated(true);
setBackground(new Color(0, 0, 0, 0));
setContentPane(new JLabel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.DST_OUT, 1));
g2d.setColor(getBackground());
g2d.fill(getBounds());
g2d.dispose();
}
});
}
public static void main(String[] args) throws IOException {
Test frame = new Test();
frame.setVisible(true);
JLabel label = new JLabel(new ImageIcon(ImageIO.read(new File("D:/JavaWork/JPM/src/Graphics/icon.png"))));
label.setBounds(200, 200, 48, 48);
label.setOpaque(false);
frame.add(label);
}
}