Formulário transparente

8 respostas
camilacanova

Boa noite, alguém pode me dizer como deixar um formulário transparente, assim, quando adicionar uma imagem PNG só apareça a imagem e os objetos como JTextFields ,JLabels e JButton.
Encontrei alguns sites que falavam sobre opacidade, não é isso, é a cor do background mesmo, obrigada

8 Respostas

ViniGodoy

Você deve desligar as decorações do formulário e chamar seu método setOpaque, passando um número entre 0 e 1, onde 1 significa 100% opaco e 0 100% transparente.

Exemplo:

seuFrame.setDecorated(false); seuFrame.setOpacity(0.3f);

Use 0 para totalmente transparente.

yhhik

o que vc quer é deixar a imagem como plano de fundo?mostrando os componentes sobre ela?

camilacanova

Sim, vamos supor que a imagem seja redonda, uma png, transparente, então apenas a imagem apareceria e não o frame atras

yhhik
hun.. vc pode deixar a imagem como plano de fundo assim:
public GujTeste() {

		JPanel painel = new JPanel();
		painel.setOpaque(false);
		setGlassPane(painel);
		getGlassPane().setVisible(true);
		
		JTextField txt=new JTextField(15);
		painel.add(txt);
		Container c = getContentPane();
		c.setLayout(new BorderLayout());
		
		ImageIcon img = new ImageIcon("fundo.gif");
		
		JLabel imagem = new JLabel(img);
		c.add(imagem, BorderLayout.CENTER);

		this.setSize(310, 240);
		this.setResizable(false);
		this.setLocationRelativeTo(null);
		this.setVisible(true);

	}

existe uma biblioteca chamada AWTUtilities que deixa o frame transparente..porém os componentes tbm ficam.
o que vc pode fazer é da um setUndecorated(true); no seu frame deixando a impressão que não ha frame.
ja fiz isso veja o resultado:

[img]http://img51.imageshack.us/img51/7610/semttulofan.jpg[/img]

camilacanova

Hum… eu vou seguir suas dicas, muito obrigada

ruben_m

ViniGodoy:
Você deve desligar as decorações do formulário e chamar seu método setOpaque, passando um número entre 0 e 1, onde 1 significa 100% opaco e 0 100% transparente.

Exemplo:

seuFrame.setDecorated(false); seuFrame.setOpacity(0.3f);

Use 0 para totalmente transparente.

Tentei a tua dica , usando o

a linha não é reconhecida porque não acha esse metodo na Classe ! e quando tento correr o programa so com a linha que define a opacidade ele lança uma Excepção justamente porque o Decoreted esta em [color=blue]true[/color]

yhhik

ruben_m:
ViniGodoy:
Você deve desligar as decorações do formulário e chamar seu método setOpaque, passando um número entre 0 e 1, onde 1 significa 100% opaco e 0 100% transparente.

Exemplo:

seuFrame.setDecorated(false); seuFrame.setOpacity(0.3f);

Use 0 para totalmente transparente.

Tentei a tua dica , usando o

a linha não é reconhecida porque não acha esse metodo na Classe ! e quando tento correr o programa so com a linha que define a opacidade ele lança uma Excepção justamente porque a opacidade esta em [color=blue]true[/color]

que jdk vc usa?
não tenho certeza mas acho que isso ae é do java 7.
vini deve confirmar pra vc…
flw

ruben_m

que jdk vc usa?
não tenho certeza mas acho que isso ae é do java 7.
vini deve confirmar pra vc…
flw

estou a usar o JDK 7 para 64 bits

Criado 21 de fevereiro de 2012
Ultima resposta 22 de fev. de 2012
Respostas 8
Participantes 4