Executar um ActionPerformed de um componente

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.