Fiz esse exemplo na carreira, só para fins de demonstração.
Ok…então lá vai:
[code]package interfaces;
import com.sun.awt.AWTUtilities;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JRootPane;
public class teste extends JFrame {
private JButton fechar, mostrar;
private boolean x;
public teste() {
final Container tela = getContentPane();
tela.setLayout(null);
this.setResizable(false);
this.setTitle("Teste");
this.setBounds(0, 0, 400, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(null);
this.setUndecorated(true);
this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
this.setLocationRelativeTo(null);
fechar = new JButton();
fechar.setOpaque(false);
fechar.setBounds(0, 0, 200, 200);
fechar.setText("Fechar");
fechar.setFont(new Font("Arial", Font.BOLD, 12));
fechar.setBackground(new Color(190, 190, 190));
this.add(fechar);
mostrar = new JButton();
mostrar.setOpaque(false);
mostrar.setBounds(200, 0, 200, 200);
mostrar.setText("Ocultar");
mostrar.setFont(new Font("Arial", Font.BOLD, 12));
mostrar.setBackground(new Color(190, 190, 190));
this.add(mostrar);
mostrar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mostrar();
}
});
fechar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
fechar();
}
});
}
public void fechar() {
System.exit(0);
}
public void mostrar() {
if (x == false) {
AWTUtilities.setWindowOpacity(this, 1f);//Deixa 100% visível
mostrar.setText("Ocultar");
x = true;
} else {
AWTUtilities.setWindowOpacity(this, 0.5f); //deixa 50% transparente
//AWTUtilities.setWindowOpacity(this, 0.01f);// Deixa 99% transparente
mostrar.setText("Mostrar");
x = false;
}
}
}[/code]
Observem que quando aperto ocultar, ele oculta tudo !
Mesmo que eu coloque:
Ele aplica o efeito nos botões também.
Quero que ele aplique o efeito só no JFrame
Tenho certeza que é uma coisa bem simples, só que eu não sei…
Talvez use umas duas ou três linhas para fazer isso só no JFrame
E Então?