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
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.
o que vc quer é deixar a imagem como plano de fundo?mostrando os componentes sobre ela?
Sim, vamos supor que a imagem seja redonda, uma png, transparente, então apenas a imagem apareceria e não o frame atras
hun…
vc pode deixar a imagem como plano de fundo assim:
[code]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);
}[/code]
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:
Hum… eu vou seguir suas dicas, muito obrigada
[quote=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.[/quote]
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]
[quote=ruben_m][quote=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.[/quote]
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][/quote]
que jdk vc usa?
não tenho certeza mas acho que isso ae é do java 7.
vini deve confirmar pra vc…
flw
[quote]que jdk vc usa?
não tenho certeza mas acho que isso ae é do java 7.
vini deve confirmar pra vc…
flw [/quote]
estou a usar o JDK 7 para 64 bits