]O problema que tirando as bordas, o botão perde o relevo ao passar e clicar com o mouse. Como resolver isto?
E qual o problema? Isso é normal e indica que o botão tem o foco.
Sim. Procure por JSpinner.
M
Marcelo_Reis1
Boa tarde,
sobre o botão é que quando retiro as bordas e acrescento a imagem, ele perde a característica de um botão. Parece uma imagem solta e ao passar o mouse ele não muda.
No caso desse JSpinner, teria algum exemplo de código?
sobre o botão é que quando retiro as bordas e acrescento a imagem, ele perde a característica de um botão. Parece uma imagem solta e ao passar o mouse ele não muda.
No caso desse JSpinner, teria algum exemplo de código?
Obrigado,
Marcelo.
Oi,
Como você retirou as bordas, sua imagem deverá ser parecida com um botão.
Você está utilizando apenas 1 imagem. Logo, ao passar o mouse ele não irá mudar. Já pensou em tratar um listenner de foco e alterar a imagem atual para uma diferente?
Tchauzin!
M
Marcelo_Reis1
Olá, boa tarde!
Sobre a criação de um botão deslizante, consegui ver um exemplo utilizando o JSpinner. Este me faz um botão na horizontal. Alguem sabe como transformar esse num botão na vertical, como aqueles de ventilador de teto?
importjava.awt.Rectangle;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JSlider;importjavax.swing.JSpinner;importjavax.swing.SwingUtilities;/** */publicclassTesteJSpinnerextendsJFrame{privateJPaneljContentPane=null;privateJSliderjslider1=null;privateJSpinnerjspinner1=null;/** * This method initializes jContentPane * * @return javax.swing.JPanel */privateJPanelgetJContentPane(){jContentPane=newJPanel();jContentPane.setLayout(null);jContentPane.add(getJslider1(),null);jContentPane.add(getJspinner1(),null);returnjContentPane;}/** * This method initializes jslider1 * * @return javax.swing.JSlider */privateJSlidergetJslider1(){jslider1=newJSlider(0,10);jslider1.setMinorTickSpacing(1);jslider1.setMajorTickSpacing(5);jslider1.setPaintTicks(true);jslider1.setPaintLabels(true);jslider1.setSnapToTicks(true);jslider1.setBounds(newRectangle(10,10,200,50));jslider1.addChangeListener(newjavax.swing.event.ChangeListener(){publicvoidstateChanged(javax.swing.event.ChangeEvente){jspinner1.setValue(jslider1.getValue());}});returnjslider1;}/** * This method initializes jspinner1 * * @return javax.swing.JTextField */privateJSpinnergetJspinner1(){jspinner1=newJSpinner();// jspinner1.setBounds(new Rectangle(210, 30, 71, 31)); returnjspinner1;}/** * @param args */publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){TesteJSpinnerthisClass=newTesteJSpinner();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}/** * This is the default constructor */publicTesteJSpinner(){super();initialize();}/** * This method initializes this * * @return void */privatevoidinitialize(){this.setSize(300,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setContentPane(getJContentPane());this.setContentPane(getJContentPane());this.setTitle("JFrame");}}
slider1 = new JSlider( SwingConstants.VERTICAL, 0, 100, 0 );
Valeu pela dica!
Agora tenho um outro problema. Ao criar esse slider e posicionar utilizando o setBounds, acabo criando um retangulo cinza junto com ele. Como poderia fazer para deixa-lo transparente (aparecendo só o botão deslizante)?
Abraço,
Marcelo.
M
marcobiscaro2112
Tente:
slider1.setOpaque(false);
PS: evite usar leiaute absoluto e dar setBounds em todos os componentes. Vale mais a pena investir um tempo em gerenciadores de leiaute.
M
Marcelo_Reis1
Valeu pela dica! Troquei o setBounds e configurei deste jeito:
Agora tenho um outro problema. Como girar o botão deslizante, de forma que a parte fina fique pra baixo ou para esquerda?
Abraço.
M
Marcelo_Reis1
Boa noite!
Estou com problemas para personalizar o botão. Tirei as bordas e coloquei uma imagem, mas daí ao ser clicado o botão não muda. Tentei colocar uma imagem de botão pressionado ao clicar, mas então essa imagem fica permanente. Como posso configurar o botão para exibir as 2 imagens (normal e pressionado) para ter um efeito de botão?
public void actionPerformed(ActionEvent e){
Botao.setIcon(Button2);
}
Abraço.
R
raghy
ao inves de ActionListener, use também ou somente, MouseListener
e ao inves de actionPerformed ou também ou somente, os métodos da classe mouseListener, precisa vários
é uma interface que precisa vários metodos na classe, mesmo que vazios.
são MouseClicked() { }
mouseEntered() {}
mouseExited() { }
mousePressed() {}
mouseReleased () {}
com isto dá de fazer muitas coisas.
estou tentando fazer um xadrez, por isto estou estudando isto.
mas para estudar fiz um jogo de memória, olhe no meu site… ao passar nos botoes eles mudam de cor, no caso o Entered
e ao sair, também no caso Exited, mas daí só mantem as cores…
então pode mudar o botão como quiser, ou só mudar o Background, com o setBackGround(Color.yellow) por exemplo.
Olá, me parece ser uma boa ideia! Tem algum exemplo de como usar isso num botão? No site só tem arquivos executáveis.
Abraço.
M
Marcelo_Reis1
Boa noite!
Ainda não resolvi meu problema com os botões. Configurei o botão no meu programa da seguinte forma:
publicvoidBotaoAumentar(){Aumentar.setVisible(true); //Diz que será visivelAumentar.setSize(30,30); //Define o tamanho do botãoAumentar.setLocation(300,400); //Define sua posiçãoAumentar.setBorder(null); //Retira as bordas do botãoAumentar.setIcon(ImageButton); //Configura a imagem do botãoadd(Aumentar); //Adiciona o botão }
Agora precisaria usar os eventos de mouse para dar a ação e mudar o icone ao ser clicado, para dar a ideia de que foi pressionado, sendo que ao largar, o icone volta ao normal.