2015-04-19 39 views
1

我的問題是如何從JInternalFrame調用JFrame的方法。我有一個從JFrame擴展了隔壁班:從JInternalFrame調用JFrame的方法?

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) 

我想訪問JFrame變量的padre。 如何訪問這些變量?

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

你問:

我想進入電影JFrame的 「神僕」 變量。我如何訪問這些變量?

我會建議你實際上要做到這一點,因爲它是危險的,有一類直接操縱的另一領域沒有任何監督或控制任何因爲這增加了代碼耦合,這不是一件好事。相反,請確保VentanaPaint類具有外部類可以調用的公共方法,並且該方法以其自身可以控制的方式(甚至在必要時甚至不允許)進行更改。

由於您的VentanaInterna類已經有一個padre字段,一個分配了當前顯示的VentanaPaint JFrame的可行引用,那麼這些方法應該很容易調用。


另外,要訪問VentanaPaint特定的調用,請將padre字段的類型更改爲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 –

相關問題