我试图创建一个带有可见工具栏的透明窗口,到目前为止我已经能够做到这一点,只是窗口的外观和感觉从正常的操作系统外观变为默认金属看。我只是想知道是否有办法绕过它。这是我的代码:
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class NewClass2 extends JFrame{
public NewClass2(){`enter code here`
super("NewClass2");
//setBackground(new Color(0,0,0,0));//this makes the window transparent
setSize(new Dimension(300,200));
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args){
//JFrame.setDefaultLookAndFeelDecorated(true);//this stops an exception
//from occurring with transparent windows, but changes look and feel.
NewClass2 cls2=new NewClass2();
}
}
答案 0 :(得分:0)
你永远不会设置你想要使用的外观和感觉,所以Java默认为它所认为的#34;应该是外观和感觉......通常是金属。
添加...
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
在创建任何UI元素之前。
查看Modifying the Look and Feel了解更多详情
您还应确保在事件调度线程的上下文中启动您的UI,以确保您不会遇到任何潜在的绘制问题或其他线程问题,请查看{{3} }了解更多详情