Oi gente, meu problema é o seguinte, eu tava querendo criar uma janela que fosse apenas visível, mas que todos os eventos fossem capturados no componente de trás…
Eu sei, tá uma enrolaçada, mas é esse o pior problema: Eu não sei o que pesquisar pra encontrar isso.
Um exemplo pratico são aquelas notificações do Ubuntu:
http://sohminha.orgfree.com/images/Captura_de_tela.png
http://sohminha.orgfree.com/images/Captura_de_tela-1.png
http://sohminha.orgfree.com/images/Captura_de_tela-2.png
Como nos prints acima, mesmo com a notificação na frente, eu selecionei o texto na barra de endereço…
Será que tem como fazer isso no Java?
Desde já, agradecido… 
Vlw a dica cara!
Tipo, pra fazer a janela, a transparência, ou as bordas, tudo bem, mas o problema mesmo é tirar essa “solides”, ou seja, dizer pro mouse que ela não exite…
Mas valeu mesmo a dica cara! 
Nao sei exatamente o que vc quis dizer com “tirar essa sodides”, mas pode tirar a habilidade do frame de ser focável (setFocusable(false)), ou procurar outra propriedade que o valha. Nunca fiz nada do tipo, mas parece interessante.
É assim, o que eu quero fazer é uma espécie de “holograma”.
Uma janela que seja exibida, mas que não seja “sentida”, de forma que o mouse quando clique encima dela, acabe clicando no que tá atrás dela, como na terceira imagem, onde eu selecionei o texto, mesmo com aquela pop-up na frente… entende?
Uma notificação que não atrapalhe na tela…
Ahhhh… Boa sorte!
Quanto tiver a solução posta ai, pq eu nao faço ideia kkk
Veja se isso ajuda:
[code]import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class TesteOverlay {
/**
* @param args
*/
public static void main(String[] args) {
new TesteOverlay().teste();
}
private void teste() {
JFrame frame = new JFrame("Overlay");
JButton botao = new JButton("Teste");
frame.add(botao);
frame.setSize(640, 480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setGlassPane(new Overlay());
botao.setAction(new ShowOverlay());
}
class ShowOverlay extends AbstractAction {
private static final long serialVersionUID = 1817243571776498418L;
public ShowOverlay() {
putValue(NAME, "Teste");
}
@Override
public void actionPerformed(ActionEvent e) {
JButton botao = (JButton) e.getSource();
JFrame theFrame = (JFrame) botao.getTopLevelAncestor();
Overlay overlay = (Overlay) theFrame.getGlassPane();
overlay.mostra("Apertou", 1);
}
}
class Overlay extends JComponent implements Runnable {
private static final long serialVersionUID = 8906385904245788553L;
String texto = "";
Long fim = 0L;
Thread thread;
public void mostra(String string, int i) {
texto = string;
synchronized (fim) {
fim = System.currentTimeMillis() + (i * 1000);
}
setVisible(true);
if (thread == null) {
thread = new Thread(this);
thread.start();
}
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawString(texto, 10, 20);
}
@Override
public void run() {
synchronized (fim) {
while(System.currentTimeMillis() < fim) {
Thread.yield();
}
setVisible(false);
thread = null;
}
}
}
}
[/code]
Isso vai me servir pra outro projeto, mas nesse caso, o que eu procuro é fazer uma janela “fantasma”, um holograma, onde eu clico nela e o mouse clique no que esta atrás, como se ela não estivesse ali.
Mas vlw pela ajuda cara! Isso vai me servir pra uma notificação que eu tava precisando fazer!
Valeu!