Перемещение Undecorated окна - Java

Узнай цену своей работы

Формулировка задачи:

Всем привет мужики. Сделал следущее: У главной формы установил undecorated(true); Это привело к тому что я остался без рамки фрейма --- так и задумывал. Но! Возникла сдедущая беда...... Теперь незнаю как сделать так чтобы окно можно было переносить. Т.е тупо взяться за любую область окна и перенести. Вот так хочу сделать.
И собственно еще такой вопрос. Для этого окна делаю прозрачность через .setOpacity(0.5f); B вместе с фреймом становятся прозрачным все объекты на этой форме... как исправить такую беду?

Решение задачи: «Перемещение Undecorated окна»

textual
Листинг программы
  1. import java.awt.AlphaComposite;
  2. import java.awt.Color;
  3. import java.awt.Container;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.io.File;
  7. import java.io.IOException;
  8.  
  9. import javax.imageio.ImageIO;
  10. import javax.swing.ImageIcon;
  11. import javax.swing.JFrame;
  12. import javax.swing.JLabel;
  13.  
  14. public class Test extends JFrame {
  15.  
  16.     private static final long serialVersionUID = 1802199483736051124L;
  17.  
  18.     public Test() throws IOException {
  19.         setLayout(null);
  20.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21.         setBounds(280, 10, 1024, 790);
  22.         setResizable(false);
  23.         setUndecorated(true);
  24.        
  25.         setBackground(new Color(0, 0, 0, 0));
  26.         setContentPane(new JLabel() {
  27.             @Override
  28.             protected void paintComponent(Graphics g) {
  29.                 super.paintComponent(g);
  30.                 Graphics2D g2d = (Graphics2D) g.create();
  31.                 g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.DST_OUT, 1));
  32.                 g2d.setColor(getBackground());
  33.                 g2d.fill(getBounds());
  34.                 g2d.dispose();
  35.             }
  36.         });
  37.     }
  38.    
  39.     public static void main(String[] args) throws IOException {
  40.         Test frame = new Test();
  41.         frame.setVisible(true);
  42.         JLabel label = new JLabel(new ImageIcon(ImageIO.read(new File("D:/JavaWork/JPM/src/Graphics/icon.png"))));
  43.         label.setBounds(200, 200, 48, 48);
  44.         label.setOpaque(false);
  45.         frame.add(label);
  46.     }
  47. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут