以下代碼在Windows(8.1)中導致透明窗口,但在Ubuntu(14.04)中爲不透明窗口。如何在Ubuntu 14.04中使用紅色輪廓實現透明窗口?透明幀在Windows中正常工作,但在Linux中不正確
我的目標是創建一個帶有「圓角(透明)邊」的未修飾窗口,因此setOpacity()方法將無法提供幫助,因爲這會影響整個窗口,即使它在兩個操作系統上都能正常工作。
public static void main(String[] args) {
JFrame f = new JFrame();
f.setUndecorated(true);
f.setBackground(new Color(0,255,0,0));
f.setSize(512, 512);
f.add(new JPanel() {
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.RED);
g.drawRect(0, 0, 511, 511);
}
});
f.setVisible(true);
}
你有[如何實現一個形狀的窗口](http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html#shaped)?用['RoundRectangle2D']複合它(http://docs.oracle.com/javase/7/docs/api/java/awt/geom/RoundRectangle2D.html) – 2014-09-10 14:17:04
@peeskillet窗口形狀對兩者都有效,但你有缺乏抗鋸齒的粗糙邊緣。 Ubuntu窗口仍然充滿了綠色背景。 – Roland 2014-09-10 14:52:14