Перемещение 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д