2015-04-19 2 views
1

Мой вопрос заключается в том, как вызвать метод JFrame с JInternalFrame. У меня есть следующий класс, который наследуется от JFrame:Вызвать метод JFrame из JInternalFrame?

public class VentanaPaint extends javax.swing.JFrame { 
/** 
* Creates new form VentanaPaint 
*/ 
public VentanaPaint() { 
    initComponents(); 
} 


/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    GroupButtonNav = new javax.swing.ButtonGroup(); 
    buttonGroup2PaletaColores = new javax.swing.ButtonGroup(); 
    barraNavegacion = new javax.swing.JToolBar(); 
    BotonDibujarPunto = new javax.swing.JToggleButton(); 
    jSeparator1 = new javax.swing.JToolBar.Separator(); 
    BotonDibujarLinea = new javax.swing.JToggleButton(); 
    BotonDibujarCuadrado = new javax.swing.JToggleButton(); 
    BotonDibujarElipse = new javax.swing.JToggleButton(); 
    contenedorEscritorio = new javax.swing.JPanel(); 
    escritorio = new javax.swing.JDesktopPane(); 
    panelBarraTrabajo = new javax.swing.JPanel(); 
    panelBarraHerramientas = new javax.swing.JPanel(); 
    contenedorPaletaColores = new javax.swing.JPanel(); 
    PaletaColores = new javax.swing.JPanel(); 
    botonNegro = new javax.swing.JToggleButton(); 
    botonRojo = new javax.swing.JToggleButton(); 
    botonAzul = new javax.swing.JToggleButton(); 
    botonBlanco = new javax.swing.JToggleButton(); 
    botonAmarillo = new javax.swing.JToggleButton(); 
    botonVerde = new javax.swing.JToggleButton(); 
    contendorGrosor = new javax.swing.JPanel(); 
    spinnerGrosor = new javax.swing.JSpinner(); 
    contenedorOpciones = new javax.swing.JPanel(); 
    jCheckBoxEditar = new javax.swing.JCheckBox(); 
    jCheckBoxRelleno = new javax.swing.JCheckBox(); 
    jCheckBoxAlisar = new javax.swing.JCheckBox(); 
    checkBoxTransparencia = new javax.swing.JCheckBox(); 
    panelBarraNotificacion = new javax.swing.JPanel(); 
    barraNotificacion = new javax.swing.JLabel(); 
    jMenuBar2 = new javax.swing.JMenuBar(); 
    Archivo = new javax.swing.JMenu(); 
    Nuevo = new javax.swing.JMenu(); 
    abrirArchivo = new javax.swing.JMenuItem(); 
    guardarArchivo = new javax.swing.JMenuItem(); 
    Edicion = new javax.swing.JMenu(); 
    BarraEstado = new javax.swing.JCheckBoxMenuItem(); 

    FormListener formListener = new FormListener(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    setBackground(new java.awt.Color(255, 252, 240)); 

    barraNavegacion.setRollover(true); 

    GroupButtonNav.add(BotonDibujarPunto); 
    BotonDibujarPunto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/practica7/pics/lapiz2_24x24.png"))); // NOI18N 
    BotonDibujarPunto.setFocusable(false); 
    BotonDibujarPunto.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); 
    BotonDibujarPunto.setMargin(new java.awt.Insets(0, 0, 0, 0)); 
    BotonDibujarPunto.setMaximumSize(new java.awt.Dimension(62, 62)); 
    BotonDibujarPunto.setMinimumSize(new java.awt.Dimension(62, 62)); 
    BotonDibujarPunto.setSize(new java.awt.Dimension(20, 20)); 
    BotonDibujarPunto.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 
    BotonDibujarPunto.addMouseListener(formListener); 
    barraNavegacion.add(BotonDibujarPunto); 
    barraNavegacion.add(jSeparator1); 

    GroupButtonNav.add(BotonDibujarLinea); 
    BotonDibujarLinea.setIcon(new javax.swing.ImageIcon(getClass().getResource("/practica7/pics/line24x24.png"))); // NOI18N 
    BotonDibujarLinea.setFocusable(false); 
    BotonDibujarLinea.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); 
    BotonDibujarLinea.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 
    BotonDibujarLinea.addMouseListener(formListener); 
    barraNavegacion.add(BotonDibujarLinea); 

    GroupButtonNav.add(BotonDibujarCuadrado); 
    BotonDibujarCuadrado.setIcon(new javax.swing.ImageIcon(getClass().getResource("/practica7/pics/cuadrado24x24.png"))); // NOI18N 
    BotonDibujarCuadrado.setFocusable(false); 
    BotonDibujarCuadrado.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); 
    BotonDibujarCuadrado.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 
    BotonDibujarCuadrado.addMouseListener(formListener); 
    barraNavegacion.add(BotonDibujarCuadrado); 

    GroupButtonNav.add(BotonDibujarElipse); 
    BotonDibujarElipse.setIcon(new javax.swing.ImageIcon(getClass().getResource("/practica7/pics/elipse24x24.png"))); // NOI18N 
    BotonDibujarElipse.setFocusable(false); 
    BotonDibujarElipse.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); 
    BotonDibujarElipse.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 
    BotonDibujarElipse.addMouseListener(formListener); 
    barraNavegacion.add(BotonDibujarElipse); 

    getContentPane().add(barraNavegacion, java.awt.BorderLayout.NORTH); 

    contenedorEscritorio.setLayout(new java.awt.BorderLayout()); 

    javax.swing.GroupLayout escritorioLayout = new javax.swing.GroupLayout(escritorio); 
    escritorio.setLayout(escritorioLayout); 
    escritorioLayout.setHorizontalGroup(
     escritorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 478, Short.MAX_VALUE) 
    ); 
    escritorioLayout.setVerticalGroup(
     escritorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 149, Short.MAX_VALUE) 
    ); 

    contenedorEscritorio.add(escritorio, java.awt.BorderLayout.CENTER); 

    getContentPane().add(contenedorEscritorio, java.awt.BorderLayout.CENTER); 

    panelBarraTrabajo.setLayout(new java.awt.BorderLayout()); 

    panelBarraHerramientas.setBackground(new java.awt.Color(204, 208, 182)); 
    panelBarraHerramientas.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 
    java.awt.FlowLayout flowLayout1 = new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 15, 5); 
    flowLayout1.setAlignOnBaseline(true); 
    panelBarraHerramientas.setLayout(flowLayout1); 

    contenedorPaletaColores.setBackground(new java.awt.Color(204, 208, 182)); 
    contenedorPaletaColores.setBorder(javax.swing.BorderFactory.createTitledBorder("Colores")); 

    PaletaColores.setBackground(new java.awt.Color(204, 204, 204)); 
    PaletaColores.setMaximumSize(new java.awt.Dimension(320, 320)); 
    PaletaColores.setMinimumSize(new java.awt.Dimension(129, 58)); 
    PaletaColores.setLayout(new java.awt.GridLayout(2, 3)); 

    botonNegro.setBackground(new java.awt.Color(0, 0, 0)); 
    buttonGroup2PaletaColores.add(botonNegro); 
    botonNegro.addMouseListener(formListener); 
    PaletaColores.add(botonNegro); 

    botonRojo.setBackground(new java.awt.Color(255, 0, 0)); 
    buttonGroup2PaletaColores.add(botonRojo); 
    botonRojo.addMouseListener(formListener); 
    PaletaColores.add(botonRojo); 

    botonAzul.setBackground(new java.awt.Color(51, 51, 255)); 
    buttonGroup2PaletaColores.add(botonAzul); 
    botonAzul.addMouseListener(formListener); 
    PaletaColores.add(botonAzul); 

    botonBlanco.setBackground(new java.awt.Color(255, 255, 255)); 
    buttonGroup2PaletaColores.add(botonBlanco); 
    botonBlanco.addMouseListener(formListener); 
    PaletaColores.add(botonBlanco); 

    botonAmarillo.setBackground(new java.awt.Color(255, 255, 0)); 
    buttonGroup2PaletaColores.add(botonAmarillo); 
    botonAmarillo.addMouseListener(formListener); 
    PaletaColores.add(botonAmarillo); 

    botonVerde.setBackground(new java.awt.Color(51, 255, 51)); 
    buttonGroup2PaletaColores.add(botonVerde); 
    botonVerde.addMouseListener(formListener); 
    PaletaColores.add(botonVerde); 

    javax.swing.GroupLayout contenedorPaletaColoresLayout = new javax.swing.GroupLayout(contenedorPaletaColores); 
    contenedorPaletaColores.setLayout(contenedorPaletaColoresLayout); 
    contenedorPaletaColoresLayout.setHorizontalGroup(
     contenedorPaletaColoresLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(PaletaColores, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE) 
    ); 
    contenedorPaletaColoresLayout.setVerticalGroup(
     contenedorPaletaColoresLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(PaletaColores, javax.swing.GroupLayout.PREFERRED_SIZE, 50, Short.MAX_VALUE) 
    ); 

    panelBarraHerramientas.add(contenedorPaletaColores); 

    contendorGrosor.setBackground(new java.awt.Color(204, 208, 182)); 
    contendorGrosor.setBorder(javax.swing.BorderFactory.createTitledBorder("Grosor")); 
    contendorGrosor.setName(""); // NOI18N 
    contendorGrosor.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 5, 12)); 

    spinnerGrosor.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.0f), Float.valueOf(0.0f), Float.valueOf(40.0f), Float.valueOf(1.0f))); 
    spinnerGrosor.addChangeListener(formListener); 
    contendorGrosor.add(spinnerGrosor); 

    panelBarraHerramientas.add(contendorGrosor); 

    contenedorOpciones.setBackground(new java.awt.Color(204, 208, 182)); 
    contenedorOpciones.setBorder(javax.swing.BorderFactory.createTitledBorder("")); 
    contenedorOpciones.setLayout(new java.awt.GridLayout(2, 2)); 

    jCheckBoxEditar.setText("Editar"); 
    jCheckBoxEditar.addChangeListener(formListener); 
    contenedorOpciones.add(jCheckBoxEditar); 

    jCheckBoxRelleno.setText("Relleno"); 
    jCheckBoxRelleno.addChangeListener(formListener); 
    contenedorOpciones.add(jCheckBoxRelleno); 

    jCheckBoxAlisar.setText("Alisar"); 
    jCheckBoxAlisar.addChangeListener(formListener); 
    contenedorOpciones.add(jCheckBoxAlisar); 

    checkBoxTransparencia.setText("Transparencia"); 
    checkBoxTransparencia.setContentAreaFilled(false); 
    checkBoxTransparencia.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); 
    checkBoxTransparencia.addChangeListener(formListener); 
    contenedorOpciones.add(checkBoxTransparencia); 

    panelBarraHerramientas.add(contenedorOpciones); 

    panelBarraTrabajo.add(panelBarraHerramientas, java.awt.BorderLayout.NORTH); 

    panelBarraNotificacion.setBorder(javax.swing.BorderFactory.createEtchedBorder()); 
    panelBarraNotificacion.setLayout(new java.awt.BorderLayout()); 

    barraNotificacion.setText(" "); 
    panelBarraNotificacion.add(barraNotificacion, java.awt.BorderLayout.NORTH); 

    panelBarraTrabajo.add(panelBarraNotificacion, java.awt.BorderLayout.SOUTH); 

    getContentPane().add(panelBarraTrabajo, java.awt.BorderLayout.SOUTH); 

    Archivo.setText("Archivo"); 

    Nuevo.setText("Nuevo"); 
    Nuevo.addMouseListener(formListener); 
    Archivo.add(Nuevo); 

    abrirArchivo.setText("Abrir"); 
    abrirArchivo.addActionListener(formListener); 
    Archivo.add(abrirArchivo); 

    guardarArchivo.setText("Guardar"); 
    guardarArchivo.addActionListener(formListener); 
    Archivo.add(guardarArchivo); 

    jMenuBar2.add(Archivo); 

    Edicion.setText("Edición"); 

    BarraEstado.setSelected(true); 
    BarraEstado.setText("Ver barra de estado"); 
    BarraEstado.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); 
    BarraEstado.addActionListener(formListener); 
    Edicion.add(BarraEstado); 

    jMenuBar2.add(Edicion); 

    setJMenuBar(jMenuBar2); 

    pack(); 
} 

// Code for dispatching events from components to event handlers. 

private class FormListener implements java.awt.event.ActionListener, java.awt.event.MouseListener, javax.swing.event.ChangeListener { 
    FormListener() {} 
    public void actionPerformed(java.awt.event.ActionEvent evt) { 
     if (evt.getSource() == abrirArchivo) { 
      VentanaPaint.this.abrirArchivoActionPerformed(evt); 
     } 
     else if (evt.getSource() == guardarArchivo) { 
      VentanaPaint.this.guardarArchivoActionPerformed(evt); 
     } 
     else if (evt.getSource() == BarraEstado) { 
      VentanaPaint.this.BarraEstadoActionPerformed(evt); 
     } 
    } 

    public void mouseClicked(java.awt.event.MouseEvent evt) { 
     if (evt.getSource() == BotonDibujarPunto) { 
      VentanaPaint.this.BotonDibujarPuntoMouseClicked(evt); 
     } 
     else if (evt.getSource() == BotonDibujarLinea) { 
      VentanaPaint.this.BotonDibujarLineaMouseClicked(evt); 
     } 
     else if (evt.getSource() == BotonDibujarCuadrado) { 
      VentanaPaint.this.BotonDibujarCuadradoMouseClicked(evt); 
     } 
     else if (evt.getSource() == BotonDibujarElipse) { 
      VentanaPaint.this.BotonDibujarElipseMouseClicked(evt); 
     } 
     else if (evt.getSource() == botonNegro) { 
      VentanaPaint.this.botonNegroMouseClicked(evt); 
     } 
     else if (evt.getSource() == botonRojo) { 
      VentanaPaint.this.botonRojoMouseClicked(evt); 
     } 
     else if (evt.getSource() == botonAzul) { 
      VentanaPaint.this.botonAzulMouseClicked(evt); 
     } 
     else if (evt.getSource() == botonBlanco) { 
      VentanaPaint.this.botonBlancoMouseClicked(evt); 
     } 
     else if (evt.getSource() == botonAmarillo) { 
      VentanaPaint.this.botonAmarilloMouseClicked(evt); 
     } 
     else if (evt.getSource() == botonVerde) { 
      VentanaPaint.this.botonVerdeMouseClicked(evt); 
     } 
     else if (evt.getSource() == Nuevo) { 
      VentanaPaint.this.NuevoMouseClicked(evt); 
     } 
    } 

    public void mouseEntered(java.awt.event.MouseEvent evt) { 
    } 

    public void mouseExited(java.awt.event.MouseEvent evt) { 
    } 

    public void mousePressed(java.awt.event.MouseEvent evt) { 
    } 

    public void mouseReleased(java.awt.event.MouseEvent evt) { 
    } 

    public void stateChanged(javax.swing.event.ChangeEvent evt) { 
     if (evt.getSource() == spinnerGrosor) { 
      VentanaPaint.this.spinnerGrosorStateChanged(evt); 
     } 
     else if (evt.getSource() == jCheckBoxEditar) { 
      VentanaPaint.this.jCheckBoxEditarStateChanged(evt); 
     } 
     else if (evt.getSource() == jCheckBoxRelleno) { 
      VentanaPaint.this.jCheckBoxRellenoStateChanged(evt); 
     } 
     else if (evt.getSource() == jCheckBoxAlisar) { 
      VentanaPaint.this.jCheckBoxAlisarStateChanged(evt); 
     } 
     else if (evt.getSource() == checkBoxTransparencia) { 
      VentanaPaint.this.checkBoxTransparenciaStateChanged(evt); 
     } 
    } 
}// </editor-fold>       

private void guardarArchivoActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
JFileChooser dlg = new JFileChooser(); 
int resp = dlg.showSaveDialog(this); 
    if(resp == JFileChooser.APPROVE_OPTION) { 
      File f = dlg.getSelectedFile(); 
      //codigo; 
    } 
}            

Здесь я создаю новый JInternalFrame:

private void NuevoMouseClicked(java.awt.event.MouseEvent evt) {         
    // TODO add your handling code here: 
    //le pasamos el padre 
    VentanaInterna vi=new VentanaInterna(this); 
    escritorio.add(vi); 
    vi.setVisible(true); 
}         


public JToolBar getBarraNavegacion(){ 
    return barraNavegacion; 

} 

public void setBarraNavegacion(JToolBar nuevaBarraNavegacion) 
{ 
    barraNavegacion=nuevaBarraNavegacion; 
} 

public javax.swing.JSpinner getSpinnerGrosor(){ 
    return spinnerGrosor; 
} 



// Variables declaration - do not modify      
private javax.swing.JMenu Archivo; 
private javax.swing.JCheckBoxMenuItem BarraEstado; 
private javax.swing.JToggleButton BotonDibujarCuadrado; 
private javax.swing.JToggleButton BotonDibujarElipse; 
private javax.swing.JToggleButton BotonDibujarLinea; 
public javax.swing.JToggleButton BotonDibujarPunto; 
private javax.swing.JMenu Edicion; 
private javax.swing.ButtonGroup GroupButtonNav; 
private javax.swing.JMenu Nuevo; 
private javax.swing.JPanel PaletaColores; 
private javax.swing.JMenuItem abrirArchivo; 
public javax.swing.JToolBar barraNavegacion; 
private javax.swing.JLabel barraNotificacion; 
private javax.swing.JToggleButton botonAmarillo; 
private javax.swing.JToggleButton botonAzul; 
private javax.swing.JToggleButton botonBlanco; 
private javax.swing.JToggleButton botonNegro; 
private javax.swing.JToggleButton botonRojo; 
private javax.swing.JToggleButton botonVerde; 
private javax.swing.ButtonGroup buttonGroup2PaletaColores; 
private javax.swing.JCheckBox checkBoxTransparencia; 
private javax.swing.JPanel contendorGrosor; 
private javax.swing.JPanel contenedorEscritorio; 
private javax.swing.JPanel contenedorOpciones; 
private javax.swing.JPanel contenedorPaletaColores; 
private javax.swing.JDesktopPane escritorio; 
private javax.swing.JMenuItem guardarArchivo; 
private javax.swing.JCheckBox jCheckBoxAlisar; 
private javax.swing.JCheckBox jCheckBoxEditar; 
private javax.swing.JCheckBox jCheckBoxRelleno; 
private javax.swing.JMenuBar jMenuBar2; 
private javax.swing.JToolBar.Separator jSeparator1; 
private javax.swing.JPanel panelBarraHerramientas; 
private javax.swing.JPanel panelBarraNotificacion; 
private javax.swing.JPanel panelBarraTrabajo; 
private javax.swing.JSpinner spinnerGrosor; 
// End of variables declaration     

} 

И из следующего класса, внутри метода

private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) 

Я хочу доступ к padre переменных JFrame. Как я могу получить доступ к этим переменным?

public class VentanaInterna extends javax.swing.JInternalFrame { 
//public practica7.Lienzo2D lienzo; 
public javax.swing.JFrame padre; 

public VentanaInterna() { 
    initComponents(); 
    padre=new javax.swing.JFrame(); 
} 
/** 
* Creates new form VentanaInterna 
* @param nuevoPadre 
*/ 
public VentanaInterna(javax.swing.JFrame nuevoPadre) { 
    initComponents(); 
    padre=new javax.swing.JFrame(); 
    padre=nuevoPadre; 
} 

/** 
* metodo selector que devuele el padre 
* @return padre 
*/ 
public javax.swing.JFrame getPadre() 
{ 
    return padre; 
} 

/** 
* metodo modificador que modifica el padre 
* @param padrenuevo 
*/ 
public void setPadre(javax.swing.JFrame padrenuevo) 
{ 
    padre=padrenuevo; 
} 

/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    lienzo1 = new practica7.Lienzo2D(); 

    setClosable(true); 
    setIconifiable(true); 
    setMaximizable(true); 
    setResizable(true); 
    setTitle("Nuevo lienzo"); 
    addInternalFrameListener(new javax.swing.event.InternalFrameListener() { 
     public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) { 
     } 
     public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) { 
     } 
     public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) { 
     } 
     public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) { 
     } 
     public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) { 
     } 
     public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) { 
      formInternalFrameActivated(evt); 
     } 
     public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) { 
     } 
    }); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(lienzo1, javax.swing.GroupLayout.DEFAULT_SIZE, 324, Short.MAX_VALUE) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(lienzo1, javax.swing.GroupLayout.DEFAULT_SIZE, 224, Short.MAX_VALUE) 
    ); 

    pack(); 
}// </editor-fold>       

private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) {            
    // TODO add your handling code here: 
    /* 
    Component c[]= padre.getRootPane().getComponents(); 
    for(Component comp:c){ 
     if((comp.getAccessibleContext().getAccessibleName())=="BotonDibujarPunto"){ 
      comp. 
     } 

    } 
    */ 
}           


// Variables declaration - do not modify      
private practica7.Lienzo2D lienzo1; 
// End of variables declaration     
public practica7.Lienzo2D getLienzo() 
{ 
return lienzo1; 
} 

}//final clase 

ответ

1

Вы спрашиваете:

я хочу Acces JFrame "Падре" переменные. Как я могу получить доступ к этой переменной?

Я собираюсь предположить, что вы на самом деле не хотите сделать это, так как это опасно иметь один класс непосредственно манипулировать полями другой без какого-либо контроля или управления вообще, так как это увеличивает код связи , не очень хорошо. Вместо этого убедитесь, что класс VentanaPaint имеет общедоступные методы , которые могут вызывать внешние классы, и которые изменяют его состояние, но таким образом, что он сам может контролировать (и даже запрещать при необходимости).

Поскольку ваш класс VentanaInterna уже имеет поле padre, которое было назначено жизнеспособной ссылкой на отображаемый в настоящее время VentanaPaint JFrame, тогда эти методы должны быть легко позволены.


Кроме того, чтобы получить доступ к VentanaPaint конкретных вызовов, изменить тип падре поля VentanaPaint, а не JFrame. Например изменить:

public class VentanaInterna extends javax.swing.JInternalFrame { 
public javax.swing.JFrame padre; 

public VentanaInterna(javax.swing.JFrame nuevoPadre) { 
    initComponents(); 
    // padre=new javax.swing.JFrame();??? don't do this 
    padre=nuevoPadre; 
} 

к этому:

public class VentanaInterna extends javax.swing.JInternalFrame { 
public VentanaPaint padre; 

public VentanaInterna(VentanaPaint nuevoPadre) { 
    initComponents(); 
    // padre=new javax.swing.JFrame();??? don't do this 
    padre=nuevoPadre; 
} 
+0

да, у меня есть общественный javax.swing.JSpinner getSpinnerGrosor() { возврата spinnerGrosor; }, который является публичным. Но я не знаю, как получить доступ к этому методу от padre, ссылка на который ссылается JFrame –

+0

@BogdanMuresan: да, я вижу. Ваша проблема заключается просто в изменении типа переменной. См. Править для ответа. –

+0

Проблема решена. Спасибо @Hovercraft Full Of Eels –

Смежные вопросы