Tela Transparente

Olá Desenvolvedores.

Há a possibilidade de deixar a tela principal TRANSPARENTE ?

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.io.File;
import java.io.*;
import java.io.FileReader;
import java.io.IOException;
import java.io.FileNotFoundException;



public class remissao extends JFrame {

    JButton    BT_Confirma, BT_Sair, BT_AbreArq;
    ImageIcon  BTConf,BTSair,BTAbre;
    JLabel     LB_Titulo, LB_ArqEnt, LB_ArqSai, LB_Chave;
    JTextField TX_ArqEnt, TX_ArqSai, TX_Chave;
      
    //****    
    public remissao() {

        //*** Exibe Tela Principal(dialog)	
       // super("MARPRESS INFORMÁTICA");
        Container tela = getContentPane();
       // tela.setBackground(Color.BLUE);
        tela.setBackground(new Color(250,250,250));
        setLayout(null);
        
             
        // Define a cor de ToolTip
        UIManager.put("ToolTip.background", Color.orange);
        
        LB_Titulo = new JLabel("REMISSÃO DE JOBs");
        LB_Titulo.setBounds(340, 20, 470, 30);
        LB_Titulo.setForeground(Color.blue);
        LB_Titulo.setFont(new Font("Arial", Font.BOLD, 36));
        tela.add(LB_Titulo);
        
        LB_ArqEnt = new JLabel("Arquivo de Entrada");
        LB_ArqEnt.setBounds(50, 90, 300, 25);
        LB_ArqEnt.setForeground(Color.blue);
        LB_ArqEnt.setFont(new Font("Arial", Font.BOLD, 25));
        tela.add(LB_ArqEnt);
        
        LB_ArqSai = new JLabel("Arquivo de Saída");
        LB_ArqSai.setBounds(50, 130, 300, 25);
        LB_ArqSai.setForeground(Color.blue);
        LB_ArqSai.setFont(new Font("Arial", Font.BOLD, 25));
        tela.add(LB_ArqSai);
        
        LB_Chave  = new JLabel("Chave de Pesquisa");
        LB_Chave.setBounds(50, 170, 300, 25);
        LB_Chave.setForeground(Color.blue);
        LB_Chave.setFont(new Font("Arial", Font.BOLD, 25));
        tela.add(LB_Chave);
        
        //**********************************************************************************
        TX_ArqEnt = new JTextField(12);
        TX_ArqEnt.setBounds(300, 90, 200, 30);
        TX_ArqEnt.setForeground(Color.orange);
        TX_ArqEnt.setFont(new Font("Arial", Font.BOLD, 25));
        TX_ArqEnt.setToolTipText("Digite o Nome do Arquivo de Entrada...");
        tela.add(TX_ArqEnt);
        
        TX_ArqSai = new JTextField(12);
        TX_ArqSai.setBounds(300, 130, 200, 30);
        TX_ArqSai.setForeground(Color.orange);
        TX_ArqSai.setFont(new Font("Arial", Font.ITALIC, 25));
        TX_ArqSai.setToolTipText("Digite o Nome do Arquivo de Saida...");
        tela.add(TX_ArqSai);
                     
        TX_Chave = new JTextField(12);
        TX_Chave.setBounds(300, 170, 200, 30);
        TX_Chave.setForeground(Color.orange);
        TX_Chave.setFont(new Font("Arial", Font.BOLD, 25));
        TX_Chave.setToolTipText("Digite a Chave a ser Pesquisada...");
        tela.add(TX_Chave);      
        
        
        //*********************************************************************************
        //*** Define Botões, (Coluna, Linha, Comprimento, Altura
      
            BTAbre = new ImageIcon("lupa.gif");
        BT_AbreArq = new JButton(BTAbre);
        BT_AbreArq.setBounds(510, 92, 40,25);
        BT_AbreArq.setForeground(Color.red);
        BT_AbreArq.setFont(new Font("Arial", Font.BOLD, 20));
        BT_AbreArq.setToolTipText("Busca e Seleciona um Arquivo...");
        BT_AbreArq.addActionListener(new ActionListener() {
                   
                   public void actionPerformed(ActionEvent e) { 
        		
        			final JFileChooser fc = new JFileChooser();
        			int res = fc.showOpenDialog(null);
        
        			if(res == JFileChooser.APPROVE_OPTION){
          				File arquivo = fc.getSelectedFile(); 
          				TX_ArqEnt.setText(arquivo.getName());	 
        				}
        			else
          				TX_ArqEnt.setText("Voce nao selecionou nenhum arquivo.");
    					
                   }});
        tela.add(BT_AbreArq);
        
     
        
             BTConf = new ImageIcon("porca.gif");
        BT_Confirma = new JButton("Confirma",BTConf);
        BT_Confirma.setBounds(450, 630, 180, 80);
        BT_Confirma.setForeground(Color.blue);
        BT_Confirma.setFont(new Font("Arial", Font.BOLD, 20));
        BT_Confirma.setToolTipText("Confirma os Dados Acima Digitados...");
        BT_Confirma.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    ChecaArq(TX_ArqEnt.getText());
                } catch (FileNotFoundException ex) {
                    Logger.getLogger(remissao.class.getName()).log(Level.SEVERE, null, ex);
                } catch (IOException ex) {
                    Logger.getLogger(remissao.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        tela.add(BT_Confirma);

        BTSair = new ImageIcon("sair.gif");
        BT_Sair = new JButton("Sair",BTSair);
        BT_Sair.setBounds(650, 630, 180, 80);
        BT_Sair.setForeground(Color.red);
        BT_Sair.setFont(new Font("Arial", Font.BOLD, 20));
        BT_Sair.setToolTipText("Sair do Sistema...");
        BT_Sair.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                int opcao;
                Object[] BT_Sair = {"Sim", "Não"};
                opcao = JOptionPane.showOptionDialog(null, "Deseja Realmente SAIR ?", "SAIR",
                        JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, BT_Sair, BT_Sair[0]);
                if (opcao == JOptionPane.YES_OPTION) {
                    System.exit(0);
                }
            }
        });
        tela.add(BT_Sair);
        //************************************************************************************ 
                 


        //*** sempre no final!!			
        setSize(1000, 800);
        setVisible(true);
        setLocationRelativeTo(null);

    }

    //**************************************************************************
    // ativa os objetos na tela, ou seja, executa as operações	
    public static void main(String args[]) {
        remissao app = new remissao();
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    //******************************************
    // verifica a existencia do arquivo de entrada
    // throws FileNotFoundException, IOException 
    public static void ChecaArq(String NmArq) throws FileNotFoundException, IOException {
        File WProcArq = new File(NmArq);
        if (!WProcArq.isFile()) {
            JOptionPane.showMessageDialog(null, "Arquivo Inexistênte! " + NmArq, "ERRO", JOptionPane.ERROR_MESSAGE);
        // depois dar um jeito de retornar lá pra cima.....
        }
  
           InputStream is = new FileInputStream(NmArq);
	         	    InputStreamReader isr = new InputStreamReader(is);
	                BufferedReader br = new BufferedReader(isr);
	                // Lê toda a 1ª linha de um arquivo
	         	    String s = br.readLine();
	                while(s != null) {
	                	System.out.println(s);
	                	s = br.readLine();
	                } 
 
}

}        

Sim, há! No construtor, por exemplo, use a seguinte linha de código:

AWTUtilities.setWindowOpacity(this, 0.5);

No caso, 0.5 é a opacidade. Zero significa totalmente tranparente e 1 significa totalmente opaco.

Marcos, primeiramente obrigado pelo seu retorno.

Agora, preciso colocar algum import ?

E exatamente aonde eu insiro esta linha AWTUtilities.setWindowOpacity(this, 0.5); ?

Deve adicionar a seguinte linha para o import:

import com.sun.awt.AWTUtilities;

E a linha acima deve ser adicionada no construtor.

Observação: no argumento do comando setWindowOpacity coloque uma letra ‘f’ após o 0.5 para indicar que é um float.

[b]OK…

Funcionou beleza!!!

Valeu[/b]

Bom Dia!

Como pode até ontem estava funcionando a transparência no ECLIPSE…

Hoje, eu abro no Net Beans 6.0.1 e está dando erro :

init:
deps-jar:
Compiling 1 source file to C:\PROGJAVA\Proj_Malaa5\build\classes
C:\PROGJAVA\Proj_Malaa5\src\malaa5.java:13: package com.sun.awt does not exist
import com.sun.awt.AWTUtilities;
1 error
CONSTRUÇÃO FALHOU (tempo total: 0 segundos)

Existe esse recurso para um JFrame?

Olá Moacir…

Até ontem funcionava no Eclipse. Hoje no NetBens, dá erro.

Basta digitar:

import com.sun.awt.AWTUtilities;

E o Net Bens já acusa erro… por que será ?

Eu achei um tópico que debateu este problema : http://www.guj.com.br/posts/list/115291.java

Testei numa aplicação que estou desenvolvendo aqui e funcionou blz!
To usando o netbeans 6.5

[code]import com.sun.awt.AWTUtilities;

public class TelaPrincipal extends javax.swing.JFrame {

private double largura = 0;
private double altura = 0;
private Dimension dimensao = Toolkit.getDefaultToolkit().getScreenSize();


public TelaPrincipal() {
    initComponents();

    habilitaDesabilitaBotoesCadastrar(false);
    habilitaDesabilitaCampos(false);
    desabilitaDoisBotoes();

    AWTUtilities.setWindowOpacity(this, 0.9f);
    largura = dimensao.getWidth();
    altura = dimensao.getHeight() - 32;
    setBounds(0, 0, (int) largura, (int) altura);
}[/code]

Provavelmente o PATH onde está o pacote com.sun.awt não está configurado corretamente no NetBeans (somente no Eclipse). Deve ser esse o motivo do erro. Para corrigir, você deve descobrir em qual JAR se encontra o pacote e configurar corretamente as dependências do projeto (adicionar o JAR ao PATH).

com.sun.awt.AWTUtilities é um pacote que apareceu no Update 10 do JDK 6.0. Portanto, verifique se você tem o JDK 6.0 Update 10 ou posterior. (A versão atual do site é Update 11.)

Ok…valeu pessoal!!! Eram as duas coisas… Funcionou blz agora!!!

[quote=thingol]com.sun.awt.AWTUtilities é um pacote que apareceu no Update 10 do JDK 6.0. Portanto, verifique se você tem o JDK 6.0 Update 10 ou posterior. (A versão atual do site é Update 11.)
[/quote]
Melhor salientar que esse é um recurso disponível apenas na JVM da Sun a partir da versão 6 update 10. Tentativas de usar esse recurso numa máquina virtual que não seja da Sun quase que certamente resultarão em falhas grotescas. Esse recurso de controlar a transparência/opacidade de janelas bem que poderia ser indicado para inclusão numa próxima especificação da api padrão do Java.

Inté.

Bem…só para completar…tem como fazer a tela ficar “degrade” ?

Por incrível que pareça, tem. Veja em:

http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/