Почему в JMenuBar статьи функционируют во второй click и не в первого?

Я располагаю одним JMenuBar где в нем у меня есть некоторые items, кликнув мне был бы должен открываться контент, только он открывает это мне, если clickeo два раза на статье (я не свернул click а сначала clickeo, я выхожу из размеров статьи, и вновь нажимаю - здесь, если оно функционирует-)

Код:

public class Index extends javax.swing.JFrame {
    public Index() {
        initComponents();
        //Lanzar animación (hilos).
        Animacion a = new Animacion(this);
        a.start();
        System.out.println("¡Bienvenido a osmarentcars, administrador!");
        //Fondo del JFrame en color gris.
        getContentPane().setBackground(Color.gray);
        //Código para confirmar el cierre de la ventana principal.
        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            @Override
            public void windowClosing(java.awt.event.WindowEvent evt){
                if (JOptionPane.showConfirmDialog(rootPane, "¿Desea salir de la aplicación?", 
                        "Salir de la aplicación", JOptionPane.ERROR_MESSAGE) == JOptionPane.ERROR_MESSAGE){
                    System.out.println("Saliendo de la aplicación... ¡Hasta luego!");
                    System.exit(0);
                }
            }
        });

        //Situamos el JDialog en el centro de la pantalla.
        setLocationRelativeTo(null);
        //No redimensionable.
        setResizable(false);
    }

    private void lanzarAyuda(){
        try{
            //Carga el fichero de ayuda.
            File fichero = new File("sistema_ayuda" + File.separator + "helpset.hs");
            URL hsURL = fichero.toURI().toURL();

            //Crea el HelpSet.
            HelpSet helpset = new HelpSet(getClass().getClassLoader(), hsURL);
            HelpBroker hb = helpset.createHelpBroker();
            //Mostrar el sistema de ayuda al pulsar F1.
            hb.enableHelpOnButton(button_ayuda, "principal", helpset);
            hb.enableHelpKey(getRootPane(), "principal", helpset);

            //Colocamos la posicion de la ventana (Posicion p).
            hb.setSize(new Dimension(800,600));
            //Colocamos el tamaño de la ventana (Dimension d).
            hb.setLocation(new Point(250,90));
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    private void button_ayudaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_button_ayudaActionPerformed
        lanzarAyuda();
    }//GEN-LAST:event_button_ayudaActionPerformed

    private void button_webActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_button_webActionPerformed
        SubirHTMLaWeb s = new SubirHTMLaWeb();
        s.run();
    }//GEN-LAST:event_button_webActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Index.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Index.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Index.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Index.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Index().setVisible(true);
            }
        });
    }

Код JMenuBar:

menu_menu.setText("Acerca de ...");

        button_ayuda.setText("Ayuda");
        button_ayuda.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                button_ayudaActionPerformed(evt);
            }
        });
        menu_menu.add(button_ayuda);

        button_web.setText("Subir página web");
        button_web.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                button_webActionPerformed(evt);
            }
        });
        menu_menu.add(button_web);

        menubar.add(menu_menu);

        setJMenuBar(menubar);
0
задан 10.01.2017, 13:27
0 ответов

То, что он перемещает тебя, что заявление классов помощи estas делая во время щелкания в меню (первый click), но он должен бы быть сделанным раньше.

Потом, в твоей секунде click ты вновь определяешь твою помощь, но как она объявлена раньше уже да, что оно ты функционирует.

Это объяснило бы поведение, что я понял тебя.

Чтобы это упорядочивать, объяви, что элементы помощи, которая у тебя есть вне события click., это сделай как и ты объявляешь оставшуюся часть элементов окна вместе с кнопками, меню, и т.д.... после того, как - instanciado элементы, на которые ты ссылаешься в помощи (button_ayuda).

С этим оно было бы должно функционировать.

0
ответ дан 03.12.2019, 17:47