Alterar as propriedades de um botão em outra Jframe!

Olá a todos, quem puder ajudar eu agradeço nesta dúvida que deve ser relativamente simples para os mais experientes em JAVA.
Vamos lá!

Tenho duas jFrames - jf1 e jf2. Na jf1 eu tenho uma jCheckbox e na jf2 eu tenho um botão.
Gostaria de que quando eu marcasse ou desmarcasse a jChbx na jf1 o botão na jf2 tivesse sua propriedade Enabled alterada.

Estou meio enrolado com esta solução, Se alguém puder ajudar eu agradeço!

No jf2 você declara um método habilitarBotao(boolean habilitar)

Aí quando selecionar o check box você faz

jf2.habilitarBotao(false);

Staroski agradeço a ajuda.
Compreendi mais ou menos sua resposta. Como faço para trazer o método habiltarBotao para a jf1 e usá-lo no if da checkbox?

Posta os códigos das suas classes.

Classe para o frm1

package frm;

import connection.conectaBanco;

public class frm1 extends javax.swing.JFrame {
   conectaBanco conDB = new conectaBanco();
  
    public frm1(String user) {

        conDB.conectaBanco();
        initComponents();
        jLabelUser.setText(user);
    }

Botão na frm1!

private void jButtonAdministrativoActionPerformed(java.awt.event.ActionEvent evt) {                                                      
        //removing Panels
        jPanelLateral.removeAll();
        jPanelLateral.repaint();
        jPanelLateral.revalidate();
        
        // Adding Panels
        jPanelLateral.add(jPanelLateralAdm);
        jPanelLateral.repaint();
        jPanelLateral.revalidate();

Classe para o frm2

package frm;

import connection.conectaBanco;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import model.modelTabela;


public class frm2 extends javax.swing.JFrame {
    
    conectaBanco conDB = new conectaBanco();


    public frm2() {
        initComponents();
        preencheTabela("select * from db order by id");
    }

CheckBox no frm2 - Aqui eu quero marcar e habilitar ou não o botão no frm1

private void jCheckBoxAdministrativoActionPerformed(java.awt.event.ActionEvent evt) {                                                        
 
        if(jCheckBoxAdministrativo.isSelected())
        {
        //removing Panels
        jPanelTipoAcesso.removeAll();
        jPanelTipoAcesso.repaint();
        jPanelTipoAcesso.revalidate();
        
        // Adding Panels
        jPanelTipoAcesso.add(jPanelAdministrativo);
        jPanelTipoAcesso.repaint();
        jPanelTipoAcesso.revalidate();
        }

Onde é que você instancia o fr1 e onde instancia o fr2?

Dicas:

  • Nomes de classe começam com letra maiúscula.
  • Tira esses repaint() e revalidate().

Grato pelas dicas Staroski, ainda sou muito novo no mundo dos códigos. Peço desculpas pela demora em responder.
Vou enviar novamente meus códigos completos, porém ainda estou bem no inicio do programa, que na verdade é apenas uma projeto pra ganhar prática e aprendizado, só pra resumir é uma tela de condição de acesso do usuário que conforme eu vou preenchendo ou não a CheckBox ativa ou não botões de outros Frames do programa para acesso ou não pelo usuário conforme cadastro.

package frm;

import connection.ConectaBanco;


public class FrmPrincipal extends javax.swing.JFrame {
    
    ConectaBanco conDB = new ConectaBanco();

    public FrmPrincipal(){
   
        conDB.conectaBanco();
        initComponents();
    }

Abaixo dos códigos acima, há somente botões e o método main e não instanciei a Classe Usuário nela que coloquei a CheckBox.

Package Frm;

import connection.ConectaBanco;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import model.modelTabela;

public class FrmUsuario extends javax.swing.JFrame {
    
    ConectaBanco conDB = new ConectaBanco();  //Instancia a conexao com o banco
    
    public FrmUsuario() {
        initComponents();
        preencheTabela("select * from usuario order by identificador");
    }
    
    //Método para preencher a tabela do programa
    public void preencheTabela(String Sql){
        conDB.conectaBanco();
        ArrayList dados = new ArrayList();
        String [] colunas = new String[] { "ID" , "Nome" , "Apelido" , "Senha" };
            try
            {
            conDB.executaSql(Sql);
            conDB.rst.first();
                do
                {
                dados.add(new Object [] {conDB.rst.getInt("identificador") , conDB.rst.getString("nome") , conDB.rst.getString("apelido") , conDB.rst.getString("senha")});
                }
                while(conDB.rst.next());
            }
            catch(SQLException ex)
            {
            JOptionPane.showMessageDialog( null , "Erro ao preencher o ArrayList: " + ex.getMessage());
            }
            
            modelTabela mod = new modelTabela(dados,colunas);
            jTableUsuario.setModel(mod);
            jTableUsuario.getColumnModel().getColumn(0).setPreferredWidth(44);
            jTableUsuario.getColumnModel().getColumn(0).setResizable(false);
            jTableUsuario.getColumnModel().getColumn(1).setPreferredWidth(180);
            jTableUsuario.getColumnModel().getColumn(1).setResizable(false);
            jTableUsuario.getColumnModel().getColumn(2).setPreferredWidth(100);
            jTableUsuario.getColumnModel().getColumn(2).setResizable(false);
            jTableUsuario.getColumnModel().getColumn(3).setPreferredWidth(100);
            jTableUsuario.getColumnModel().getColumn(3).setResizable(false);
            
            jTableUsuario.getTableHeader().setReorderingAllowed(false); // Não reordenar alocação
            jTableUsuario.setAutoResizeMode(jTableUsuario.AUTO_RESIZE_OFF); // Bloqueia a tabela como um todo.
            jTableUsuario.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Seleciona um item por tabela.
        conDB.desconectaBanco();
    }
    
    // Método para preencher a Cbx com os departamentos cadastrados em outro db.
    public void jcbXDepartamento(){
        conDB.conectaBanco();
        conDB.executaSql("select * from departamento order by nome");
            try
            {
            conDB.rst.first();
                do
                {
                jComboBoxDepartamento.addItem(conDB.rst.getString("nome"));
                }
                while(conDB.rst.next());
            }catch(SQLException ex)
            {
            JOptionPane.showMessageDialog(null , "Erro ao preencher Departamentos na ComboBox: " + ex.getMessage());
            }
        conDB.desconectaBanco();
    }

Abaixo dessa classe Usuário estão as CheckBox e o método Main, tbm não intanciei a Classe Principal aqui.

Agradeço se puder explicar um pouco mais detalhadamente com relação ao método boolean, e dicas são sempre aceitáveis.

Quanto aos jPanels, se eu tirar os revalidate() e os repaint(), eles deixam de aparecer ao clicar no botão.

Agradeço! Abrs