java - 从 JInternalFrame 调用 JFrame 的方法?

标签 java swing netbeans

我的问题是如何从 JInternalFrame 调用 JFrame 的方法。我有一个从 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

最佳答案

你问:

i want to acces jFrame "padre" variables. How can I acces to these variable?

我建议您实际上不想这样做,因为随着这种情况的增加,让一个类在没有任何监督或控制的情况下直接操作另一个类的字段是危险的代码耦合,不是一件好事。相反,请确保 VentanaPaint 类具有外部类可以调用的公共(public)方法,并以它本身可以控制的方式(甚至在必要时不允许)更改其状态。

由于您的 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;
}

关于java - 从 JInternalFrame 调用 JFrame 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29729491/

相关文章:

java - 如何创建一个新的 JFrame,其位置设置为另一个 JFrame 的中间?

java - 我应该如何针对不同的分辨率缩放菜单大小?

java - 如何从我的 netbeans 项目设置 subvresion 存储库

java - 仅存储 24 小时变量值

java - 安卓 : Bundle Vs Intent

java - 当卡片布局中的面板出现时如何执行某些操作

java - jbutton点击时如何打开JInternalFrame

java - 在 Java 中,如何迭代 ArrayList 的子列表?

javascript - JavaFX WebEngine JavaScript 上行调用

java - Firebase - 获取子项等于的所有键