今天在这个网站上http://www.iteye.com/topic/707514
看到了制作不规则JFrame窗口的方法,
利用AWTUtilities.setWindowOpaque(Jframe true);方法将JFrame设置为透明,
然后再JPanel上画图,相当于直接在桌面上画图,
可是无轮我怎么试验都透明不了,
即使复制教程里一模一样的代码进去也一样,怎么回事啊,是我的系统环境问题还是编译器问题?
这是一个最简单的例子,可是还是运行不了,求教各位大神啊,我快疯了,这个问题折腾一天了:
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);
}
});
}
}