读书人

各位大神关于做JFrame不规则半透明窗口

发布时间: 2013-10-18 20:53:13 作者: rapoo

求救各位大神关于做JFrame不规则半透明窗口
今天在这个网站上http://www.iteye.com/topic/707514
看到了制作不规则JFrame窗口的方法,

利用AWTUtilities.setWindowOpaque(Jframe true);方法将JFrame设置为透明,
然后再JPanel上画图,相当于直接在桌面上画图,
可是无轮我怎么试验都透明不了,
即使复制教程里一模一样的代码进去也一样,怎么回事啊,是我的系统环境问题还是编译器问题?


这是一个最简单的例子,可是还是运行不了,求教各位大神啊,我快疯了,这个问题折腾一天了各位大神关于做JFrame不规则半透明窗口

import java.awt.*;
import javax.swing.*;
import com.sun.awt.AWTUtilities;

public class MyJFrame extends JFrame {

public MyJFrame() {

setVisible(true);
AWTUtilities.setWindowOpaque(this, false);
setSize(640,480);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
MyJFrame j = new MyJFrame();
}
}

[解决办法]

import java.awt.*;
import javax.swing.*;
import com.sun.awt.AWTUtilities;

public class MyJFrame extends JFrame {

public MyJFrame() {
super("透明窗体");
this.setLayout(new FlowLayout());
this.add(new JButton("按钮"));
this.add(new JCheckBox("复选按钮"));
this.add(new JRadioButton("单选按钮"));
this.add(new JProgressBar(20, 100));
this.setSize(new Dimension(400, 300));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// this.setUndecorated(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Window w = new MyJFrame();

com.sun.awt.AWTUtilities.setWindowOpacity(w, 0.63f);
w.setVisible(true);
}
});
}
}

读书人网 >J2SE开发

热点推荐