Componente com comportamento como os ícones do Windows [RESOLVIDO]
1 resposta
W
wellingtonfoz
Bom dia pessoal,
Existe algum componente no Swing que tenha comportamento semelhante aos ícones do Windows? Isto é, ao clicar uma vez fica selecionado, duplo clique gera algum evento, passar o mouse em cima fica mais claro…
Preciso fazer um frame que contenha todas as mesas de um restaurante e gostaria de um comportamento mais ou menos assim…
Pensei no JButton, mas como fazê-lo ficar com esse comportamento?!
Obrigado!
RESOLVIDO:
felipe, usei a tua idéia mas com um JToggleButton que me atendeu melhor. Obrigado!
Você pode implementar alguns listeners e adicioná-los ao botão para que tenha as funcionalidades que você deseja.
talvez este exemplo lhe dê uma idéia.
importjava.awt.Color;importjava.awt.event.FocusEvent;importjava.awt.event.FocusListener;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassMyButtonextendsJButtonimplementsFocusListener,MouseListener{privateColoroldColor;publicMyButton(){init();}publicMyButton(Stringtext){super(text);init();}privatevoidinit(){setSize(50,100);addFocusListener(this);addMouseListener(this);}@OverridepublicvoidmouseClicked(MouseEvente){if(e.getClickCount()==2){System.out.println("click duplo");}}@OverridepublicvoidmousePressed(MouseEvente){}@OverridepublicvoidmouseReleased(MouseEvente){}@OverridepublicvoidmouseEntered(MouseEvente){oldColor=this.getBackground();this.setBackground(Color.BLUE);}@OverridepublicvoidmouseExited(MouseEvente){if(oldColor!=null){this.setBackground(oldColor);}}@OverridepublicvoidfocusGained(FocusEvente){System.out.println("Botão Focado.");}@OverridepublicvoidfocusLost(FocusEvente){System.out.println("Botão Não Focado.");}publicstaticvoidmain(String[]args){JFramefr=newJFrame("Teste");fr.setSize(300,300);fr.getRootPane().add(newMyButton("Teste"));fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.setVisible(true);}}
neste exemplo extendi o JButton e implementei os Listeners FocusListener e MouseListener
no método init() adicionei estes listeners ao botão.