Pessoal, eu quero poder fazer com que o JButton seja transparente mas não totalmente, até ai eu consegui porém quando eu passo o cursor por cima, ele tira a transparencia do JButton. Além disso queria saber como posso mudar a cor da borda e poder aumentar a borda.
E aproveitando, como posso colocar uma imagem de fundo no JPanel, ou no JFrame?
Sobre a opacidade do jButton acontece a mesma coisa aqui, acho que não tem muita solução nesse caso…
jButton1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 153, 0), 3));
Aqui é a cor: "(255, 153, 0)"
Aqui é a largura da borda: “, 3”
Primeiro cria um pacote, coloca a sua imagem dentro do seu pacote. Depois: No jPanel vc nao vai conseguir… coloca um jLabel no seu jPanel, redimensiona ele pra o tamanho que você quiser, aí clica com o botão direito, propriedades, icon (é a 6ª opção), clica nos três pontinhos “…”, escolhe o pacote que vc quer e depois seleciona a imagem.
Cara tem como me dizer como seria no código? eu não entendi muito bem
Opa: seujLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/seuPacote/Imagem.jpg")));
ok, vlw, vc saberia como mudar o margin do JButton?
A borda? Se for:
jButton1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 204, 204), 3));
Aqui é a cor: "(0, 204, 204)"
Aqui é a grossura da borda: “, 3”
Se for o Margin mesmo:
jButton1.setMargin(new java.awt.Insets(2, 14, 2, 19));
Aí vc muda pra os seus parametros: `
2: Superior
14: Esquerda
2: Inferior
19: Direita
não, eu falo do espaço entre a borda e o texto
Editei minha respota, ta ali também
ok, vlw, vc saber como eu poderia resolver o meu problema? toda vez que eu passo o mouse sobre o JButton, ele perde um pouco da transparencia e começa a ficar cada vez mais opaco
Olha, eu tentei aqui e deu a mesma coisa, toda vez que eu passava o mouse ele voltava a cor normal… Indiferente da opacidade, ele sempre voltava, então nessa parte eu não sei como dar um jeito
Acredito que talvez eu tenha conseguido, ele não ta perdendo a transparencia mas ta respondendo ainda. vou fazer alguns testes no código ainda, por enquanto eu coloquei pra ele pintar de preto o background quando o Focus for true, mas não ta pintando, só ta transparente direto, então ta meio estranho ainda.
JButton btnSair = new JButton("Sair") {
@Override
public void paintComponent(Graphics g) {
if(btnSair.isFocusOwner()) {
//Caso o cursor esteja no botão mas não clicou.
} else {
//Caso contrario.
}
}
};
JButton botao = new JButton("ola mundo") {
public void paint(Graphics g) {
if (g != null) {
Graphics2D g2d = (Graphics2D) g;
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.50f)); // 50%
super.paint(g);
}
}
};
botao.setOpaque(false);
Até agr nada, não funcionou nada
Então procure sobre “JButton traslucent” ou “JButton translucente”.
Até agr eu consegui apenas fazer com que ele ficasse transparente inicialmente e escurecer ele só quando aproximo, mas mantendo um certo nivel de transparencia, mas mesmo assim, eu queria que ele voltasse a transparencia anterior, e não que ficasse totalmente translucido:
Vou colcoar o codigo aqui pra caso alguém consiga ter uma idéia se tiver coisas sem sentido no codigo, é pq isso é só o código teste, então pode ter alguns códigos soltos sem finalidades, mas acredito eu q não tenha:
package ConfigurandoTela;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class ConfigTela {
JFrame janela = new JFrame();
JPanel painel = new JPanel();
JButton btnSair = new JButton("Sair");
JLabel fundo = new JLabel();
public void main() {
configBtn();
configLabel();
configPanel();
configFrame();
}
public void configFrame() {
janela.setLayout(null);
janela.setBounds(0, 0, 1000, 600);
janela.add(painel);
janela.setVisible(true);
}
public void configPanel() {
painel.setLayout(null);
painel.setBounds(0, 0, 500, 500);
painel.setBackground(Color.blue);
painel.add(btnSair);
painel.add(fundo);
}
public void configLabel() {
fundo.setBounds(0, 0, 500, 500);
fundo.setIcon(new javax.swing.ImageIcon(getClass().getResource("fundo.png")));
}
public void configBtn() {
btnSair.setContentAreaFilled(false);
btnSair.setBorder(javax.swing.BorderFactory.createLineBorder(Color.green, 2));
btnSair.setMargin(new java.awt.Insets(2, 14, 2, 19));
btnSair.setForeground(new Color(0.0f,0.5f,0.0f,1.0f));
btnSair.setBackground(new Color(0.5f,0.5f,0.5f,1.0f));
btnSair.setBounds(0, 0, 200, 50);
btnSair.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
System.exit(0);
}
});
btnSair.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent me) {}
@Override
public void mousePressed(MouseEvent me) {}
@Override
public void mouseReleased(MouseEvent me) {}
@Override
public void mouseEntered(MouseEvent me) {
System.out.println("oiii");
btnSair.setContentAreaFilled(true);
btnSair.setBackground(new Color(0.5f,0.5f,0.5f,0.5f));
}
@Override
public void mouseExited(MouseEvent me) {
btnSair.setContentAreaFilled(false);
btnSair.setBackground(new Color(0.5f,0.5f,0.5f,0.2f));
}
});
}
}
class BotaoTranslucent extends JButton {
float alpha = .4f;
public BotaoTranslucent(String text) {
super(text);
setOpaque(false);
setBackground(new Color(0.5f,0.5f,0.5f));
setBorder(javax.swing.BorderFactory.createLineBorder(Color.green, 2));
setMargin(new java.awt.Insets(2, 14, 2, 19));
setForeground(new Color(0.0f,0.5f,0.0f));
addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent me) {
alpha = .8f;
repaint();
}
@Override
public void mouseExited(MouseEvent me) {
alpha = .4f;
repaint();
}
})
}
public void paint(Graphics g) {
if (g != null) {
Graphics2D g2d = (Graphics2D) g;
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
g2d.setColor(getBackground());
g2d.fillRect(0,0,getWidth,getHeight);
super.paint(g);
}
}
}
Caraca véi, vlw, vou estudar bem esse seu código pra eu poder entender melhor, mas valeu mesmo cara, era exatamente isso que eu queria.