解决方案 »

  1.   


    import java.awt.Color;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    public class JFrameBackground extends JFrame {
    public JFrameBackground() {
    this.setTitle("我的swing界面");
    JLabel someText = new JLabel("透明的哦");
            GradientPanel gradientPanel = new GradientPanel();
            gradientPanel.add(someText);
            this.add(gradientPanel);

    this.setSize(300, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
    } public static void main(String[] args) {
    new JFrameBackground();
    }
    }class GradientPanel extends JPanel {    @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            int w = getWidth(); 
            int h = getHeight();
            Graphics2D g2d = (Graphics2D) g;
            g2d.setPaint(new GradientPaint(0, 0, Color.RED, 0, h, Color.WHITE));
            g2d.fillRect(0, 0, w, h);
        }
    }
      

  2.   

    谢谢大家的回帖,请问有没有可能jpanel的背景直接透明显示桌面?
      

  3.   

    要用到jna的。import java.awt.Color;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;import javax.swing.JFrame;
    import javax.swing.JPanel;import com.sun.jna.platform.WindowUtils;
    public class JFrameBackground extends JFrame { public static void main(String[] args) {
            JFrame frame = new JFrame();  
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            frame.setBounds(500, 500, 300, 300);  
            System.setProperty("sun.java2d.noddraw","true");
            WindowUtils.setWindowAlpha(frame, 0.5f);
            JPanel pane = new JPanel() {  
                @Override  
                public void paint(Graphics g) {  
                    super.paint(g);  
      
                    g.setColor(Color.red);  
                    g.fill3DRect(10, 10, 100, 100, true);  
                }  
            };  
      
            frame.setContentPane(pane);  
            frame.setVisible(true);  
    }
    }
      

  4.   

    怎么运行你的这段代码报错呢?:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform
    at com.sun.jna.platform.WindowUtils$Holder.<clinit>(WindowUtils.java:570)
    at com.sun.jna.platform.WindowUtils.getInstance(WindowUtils.java:589)
    at com.sun.jna.platform.WindowUtils.setWindowAlpha(WindowUtils.java:1533)
    at frametm.JFrameBackground.main(JFrameBackground.java:25)
    Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 4 morejar包也导了,我导的是jna-platform.jar。
      

  5.   

    怎么运行你的这段代码报错呢?:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform
    at com.sun.jna.platform.WindowUtils$Holder.<clinit>(WindowUtils.java:570)
    at com.sun.jna.platform.WindowUtils.getInstance(WindowUtils.java:589)
    at com.sun.jna.platform.WindowUtils.setWindowAlpha(WindowUtils.java:1533)
    at frametm.JFrameBackground.main(JFrameBackground.java:25)
    Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 4 morejar包也导了,我导的是jna-platform.jar。下3.3.0版本的:http://download.csdn.net/detail/huxiweng/6545223
      

  6.   

    quote=引用 6 楼 huxiweng 的回复:]
    怎么运行你的这段代码报错呢?:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform
    at com.sun.jna.platform.WindowUtils$Holder.<clinit>(WindowUtils.java:570)
    at com.sun.jna.platform.WindowUtils.getInstance(WindowUtils.java:589)
    at com.sun.jna.platform.WindowUtils.setWindowAlpha(WindowUtils.java:1533)
    at frametm.JFrameBackground.main(JFrameBackground.java:25)
    Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 4 morejar包也导了,我导的是jna-platform.jar。下3.3.0版本的:http://download.csdn.net/detail/huxiweng/6545223
    依然报错....
    [
      

  7.   

    怎么运行你的这段代码报错呢?:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform
    at com.sun.jna.platform.WindowUtils$Holder.<clinit>(WindowUtils.java:570)
    at com.sun.jna.platform.WindowUtils.getInstance(WindowUtils.java:589)
    at com.sun.jna.platform.WindowUtils.setWindowAlpha(WindowUtils.java:1533)
    at frametm.JFrameBackground.main(JFrameBackground.java:25)
    Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 4 morejar包也导了,我导的是jna-platform.jar。下3.3.0版本的:http://download.csdn.net/detail/huxiweng/6545223依然报错。。
      

  8.   

    少个jna包怎么运行你的这段代码报错呢?:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform
    at com.sun.jna.platform.WindowUtils$Holder.<clinit>(WindowUtils.java:570)
    at com.sun.jna.platform.WindowUtils.getInstance(WindowUtils.java:589)
    at com.sun.jna.platform.WindowUtils.setWindowAlpha(WindowUtils.java:1533)
    at frametm.JFrameBackground.main(JFrameBackground.java:25)
    Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 4 morejar包也导了,我导的是jna-platform.jar。下3.3.0版本的:http://download.csdn.net/detail/huxiweng/6545223依然报错。。
      

  9.   

    jna.jar http://download.csdn.net/detail/huxiweng/6546089
      

  10.   

    quote=引用 10 楼 huxiweng 的回复:]
    jna.jar http://download.csdn.net/detail/huxiweng/6546089引用jna.jar的话编译都通不过,无法解析 WindowUtils这个类[
      

  11.   


    我看你不运行成功了嘛,你导入的是哪个jar包啊
      

  12.   


    我看你不运行成功了嘛,你导入的是哪个jar包啊
    晕,两个包都要!
    jna.jar 和 jna-3.3.0-platform.jar
      

  13.   


    我看你不运行成功了嘛,你导入的是哪个jar包啊
    晕,两个包都要!
    jna.jar 和 jna-3.3.0-platform.jar果然,ok了。 谢谢~~
      

  14.   


    this.setUndecorated(true); //去掉标题栏
    com.sun.awt.AWTUtilities.setWindowOpaque(this,false);                 //this是Frame这样就透明了  不能那么麻烦
      

  15.   


    表示很多人找不到这个类
    com.sun.awt.AWTUtilities
    好像sun的包也不推荐使用吧
      

  16.   

    jdk7 自带透明效果,
    jdk6 推荐使用JNA,AWTUtilities的透明窗口我只在windows下可以成功,在linux就不行了。
      

  17.   

    谢谢大家,我只是想得到部分透明的效果,例如上方不透明,下方板块透明组件不透明,我发现swing hacks里面的一个案例可以采用实现这个效果。
      

  18.   

    .AWTUtilities.setWindowOpaque(this,false);我用这句。。直接搞定了,但是标题栏什么的都没有了