Следующий код приводит к прозрачному окну в 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) –
@peeskillet Форма окна работает на обоих, но тогда вы имеют те грубые края из-за отсутствия сглаживания. Окно Ubuntu по-прежнему заполняет зеленый фон. – Roland