Aew galera estou com uma duvida, por exemplo quando tenho um JButom e pretendo disparar o evento como se eu estivesse clicando nele por programação, eu utilizo o metodo doClick()
e para os outros componentes como por exemplo um JRadioButtom ou JTextField como eu executo os actions do componente?
Boa noite Furacao123.
Voce pode fazer isto de duas maneiras, e para ambas voce vai implementar a interface ActionListener.
Primeiro declara a sua classe assim:
public class MinhaClasse extends JFrame implements ActionListener {
.....
.....
.....
}
Esta infertace vai obrigar a voce implementar o método ActionPerformed, assim:
public class MinhaClasse extends JFrame implements ActionListener {
private JTextField meutextfield;
private JRadioButton meuradiobutton;
private JComboBox meucombobox;
.....
.....
.....
public void actionPerformed(ActionEvent e) {
if (e.getSource() == meutextfield) {
.....
} else if (e.getSource == meuradiobutton) {
.....
} else if (e.getSource == meucombobox) {
....
}
}
E pra finalizar a primeira etapa, voce adiona os actionlisteners nos componentes desta forma:
public class MinhaClasse extends JFrame implements ActionListener {
private JTextField meutextfield;
private JRadioButton meuradiobutton;
private JComboBox meucombobox;
.....
.....
.....
public MinhaClasse() {
meutextfield = new JTextField();
meutextfield.addActionListener(this);
meuradiobutton = new JRadioButton();
meuradiobutton.addActionListener(this);
meucombobox = new JComboBox();
meucombobox.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == meutextfield) {
.....
} else if (e.getSource == meuradiobutton) {
.....
} else if (e.getSource == meucombobox) {
....
}
}
A outra maneira é bem mais simples e é muito utilizada quando voce está apenas implementando listeners de evento em apenas um componente.
public class MinhaClasse extends JFrame {
private JTextField meutextfield;
.....
.....
.....
public MinhaClasse() {
meutextfield = new JTextField();
meutextfield.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
........
}
});
}
}
Repare que desta maneira, voce não precisa identificar o componente clicado com o “e.getSource()”, pois voce está adicionando e automaticamente implementando o listener dentro do componente.
Um abraço.
Boa Noite
Pode utilizar o método doClick() para simular o click em todos os componentes que herdam da classe AbstractButton, (JButton, JMenuItem, JToggleButton, JCheckBox, JRadioButton). Mas para JTextField não é possivel.
Abraço!
Adicionar um actionPerformed tranquilo, é que estou tendo problemas ao chamar um JDialog vindo de um JFrame quando crio o JDialog o focu fica na janela ae ao apertar enter por exemplo ele me aparece as opções da janela de maximizar, minimizar, etc o menu da janela, mas eu preciso q ao abrir o jdialog o foco fique num componente, entao estava pensando em simular um TAB pois quando esse menu aparece eu aperto tab e ele volta ao focu normal da janela e dando enter navego entre os componentes normalmente.
acabei descobrindo porque isso acontece é que no atalho para chamar o JDialog eu estava utilizando o F10 ae ele abria o novo JDialog mas ficava com foco na janela do windows onde ao apertar enter aparecia Maximizar Fechar, etc.