[RESOLVIDO]jMenuBar com erro

17 respostas
Schimuneck

Boa tarde senhores.

Eu estava fazendo um projeto no NetBeans como um aplicativo comum e hoje resolvi fazer em um Aplicativo para Desktop. Ate então tava tudo funcionando mas agora a os Itens dos Menu da Minha JMenuBar não aparecem o texto. Eles ficam assim:

e alem disso, se eu abro algum dos menus, nao consigo sair dele ele nao fexa se eu cliclar fora

Alguem sabe o que pode estar acontecendo?
Obrigado

17 Respostas

Schimuneck

Eu não sabia postar imagem ai não deu muito certo, mas se clicar com o direito exibir funciona.

rafaelviny

vc adicionou o JMenuItem ao seu JMenuBar ??

Anime

Oi,

Posta o código… :roll:

Schimuneck

Sim, eu crio eles pelo modo interface do NetBeans, e ele já faz isso por mim. E alem do mais os botões estão ali, no entanto estão muito pequenos, ou sem texto, não sei bem.

Como disse, o código é gerado automaticamente, mas amanha posto ele(não tenho ele aqui no momento). Aproveitando, criar a interface de um programa por este método de arrastar os componentes, é uma má pratica de programação?

Obrigado.

Anime

Schimuneck:
Sim, eu crio eles pelo modo interface do NetBeans, e ele já faz isso por mim. E alem do mais os botões estão ali, no entanto estão muito pequenos, ou sem texto, não sei bem.

Como disse, o código é gerado automaticamente, mas amanha posto ele(não tenho ele aqui no momento). Aproveitando, criar a interface de um programa por este método de arrastar os componentes, é uma má pratica de programação?

Obrigado.

Não acho uma má pratica e sim uma necessidade, mas é muito bom entender como funciona o código…

R

Schimuneck:
Sim, eu crio eles pelo modo interface do NetBeans, e ele já faz isso por mim. E alem do mais os botões estão ali, no entanto estão muito pequenos, ou sem texto, não sei bem.

Como disse, o código é gerado automaticamente, mas amanha posto ele(não tenho ele aqui no momento). Aproveitando, criar a interface de um programa por este método de arrastar os componentes, é uma má pratica de programação?

Obrigado.

Não trabalho muito com Swing, mas fica a minha opinião:

Em relação à criação da interface arrastando componente: não vejo problema. Uma vez que, atualmente tudo deve ser feito visando a produtividade. E é indiscutível que desse modo a produtividade é muito maior.
Mas, como a Anime disse, deve-se entender tudo que está sendo feito por trás. Se você olhar o código gerado e não entender algo, descubra porque aquilo está ali.

Em relação à ferramenta utilizada:

Criando usando o Matisse do Netbeans, o código fica bloqueado para edição usando a IDE. Isso eu considero ruim. Pois, para fazer a edição de alguns detalhes é necessário editar fora da IDE. (Falo isso baseado em uma experiência antiga com o Netbeans, caso não seja isso me corrijam).

Li falar muito bem do WindowBuilder que agora é distribuido gratuitamente pela Google. É um plugin que pode ser instalado no Eclipse (sim, não é necessário o Netbeans para criar interfaces de modo RAD). Não cheguei a testá-lo. Mas, se fosse para desenvolver em Swing consideraria como minha primeira opção.

rafaelviny

RafaelViana

o plugin do google para o eclipse é ótimo

abandonem o netbeans :smiley:

Schimuneck

No NetBeans eu consigo editar praticamente todo código que fica “bloqueado” ainda não tive nada que não desse para editar.
Eu entendo o que o código que o NetBeans faz, pois no inicio eu comecei desenvolvendo tudo no braço, mas como o RafaelViana falou eu precisava de produtividade e tive que ir para o Matisse.

Uma pena descobrir isso agora, pois já tenho muita coisa implementada no NetBeans e alterar para o Equipse não me daria muito trabalho?

Anime

rafaelviny:
RafaelViana

abandonem o netbeans :D

Desculpe, mas não é pra tanto… :shock:

Anime

Schimuneck:
No NetBeans eu consigo editar praticamente todo código que fica “bloqueado” ainda não tive nada que não desse para editar.
Eu entendo o que o código que o NetBeans faz, pois no inicio eu comecei desenvolvendo tudo no braço, mas como o RafaelViana falou eu precisava de produtividade e tive que ir para o Matisse.

Uma pena descobrir isso agora, pois já tenho muita coisa implementada no NetBeans e alterar para o Equipse não me daria muito trabalho?

Oi,

Conseguiu resolver o problema…

Pelo jeito sim… :roll:

rafaelviny

Anime:
rafaelviny:
RafaelViana

abandonem o netbeans :D

Desculpe, mas não é pra tanto… :shock:

tenta mecher no netbeans em um projeto que tenha 5 mil classes para vc ver como fica :stuck_out_tongue:

Schimuneck

Ainda não consegui resolver meu problema, Hoje atarde vou colocar o código aqui. Obrigado.

Anime

rafaelviny:
Anime:
rafaelviny:
RafaelViana

abandonem o netbeans :D

Desculpe, mas não é pra tanto… :shock:

tenta mecher no netbeans em um projeto que tenha 5 mil classes para vc ver como fica :P

Prefiro não comentar rsrs… :wink:

Schimuneck

Bom, aqui está o códido, bem esteço então não sei se alguem vai se prestar a ver o que pode estar errado, eu revisei e onde achei que podia dar algum erro, e ta tudo ok, então vou deixar aqui.

PanelPrincipal = new javax.swing.JPanel();
        panelTerminal1 = new desktop_pd1901.PanelTerminal();
        bibliotecaArquivos1 = new desktop_pd1901.BibliotecaArquivos();
        biblitecaPropriedades1 = new desktop_pd1901.BiblitecaPropriedades();
        menuBar = new javax.swing.JMenuBar();
        javax.swing.JMenu JsMenuFile = new javax.swing.JMenu();
        JsMenuRunFile = new javax.swing.JMenuItem();
        javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
        JsMenuConnections = new javax.swing.JMenu();
        ConectTo = new javax.swing.JMenuItem();
        jSeparator1 = new javax.swing.JSeparator();
        javax.swing.JMenu JsMenuHelp = new javax.swing.JMenu();
        javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
        JsMenuContacts = new javax.swing.JMenuItem();
        statusPanel = new javax.swing.JPanel();
        javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
        statusMessageLabel = new javax.swing.JLabel();
        statusAnimationLabel = new javax.swing.JLabel();
        progressBar = new javax.swing.JProgressBar();
        GrupoIps = new javax.swing.ButtonGroup();

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(br.com.datacom.Desktop_PD1901App.class).getContext().getResourceMap(Desktop_PD1901View.class);
        PanelPrincipal.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("PanelPrincipal.border.title"))); // NOI18N
        PanelPrincipal.setMinimumSize(new java.awt.Dimension(750, 550));
        PanelPrincipal.setName("PanelPrincipal"); // NOI18N

        panelTerminal1.setName("panelTerminal1"); // NOI18N

        bibliotecaArquivos1.setName("bibliotecaArquivos1"); // NOI18N

        javax.swing.GroupLayout bibliotecaArquivos1Layout = new javax.swing.GroupLayout(bibliotecaArquivos1);
        bibliotecaArquivos1.setLayout(bibliotecaArquivos1Layout);
        bibliotecaArquivos1Layout.setHorizontalGroup(
            bibliotecaArquivos1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 311, Short.MAX_VALUE)
        );
        bibliotecaArquivos1Layout.setVerticalGroup(
            bibliotecaArquivos1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 290, Short.MAX_VALUE)
        );

        biblitecaPropriedades1.setName("biblitecaPropriedades1"); // NOI18N

        javax.swing.GroupLayout biblitecaPropriedades1Layout = new javax.swing.GroupLayout(biblitecaPropriedades1);
        biblitecaPropriedades1.setLayout(biblitecaPropriedades1Layout);
        biblitecaPropriedades1Layout.setHorizontalGroup(
            biblitecaPropriedades1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 311, Short.MAX_VALUE)
        );
        biblitecaPropriedades1Layout.setVerticalGroup(
            biblitecaPropriedades1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 146, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout PanelPrincipalLayout = new javax.swing.GroupLayout(PanelPrincipal);
        PanelPrincipal.setLayout(PanelPrincipalLayout);
        PanelPrincipalLayout.setHorizontalGroup(
            PanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PanelPrincipalLayout.createSequentialGroup()
                .addComponent(panelTerminal1, javax.swing.GroupLayout.DEFAULT_SIZE, 409, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(PanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(biblitecaPropriedades1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(bibliotecaArquivos1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        PanelPrincipalLayout.setVerticalGroup(
            PanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PanelPrincipalLayout.createSequentialGroup()
                .addComponent(bibliotecaArquivos1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(12, 12, 12)
                .addGroup(PanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(biblitecaPropriedades1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(panelTerminal1, javax.swing.GroupLayout.PREFERRED_SIZE, 173, Short.MAX_VALUE)))
        );

        menuBar.setName("menuBar"); // NOI18N

        JsMenuFile.setText(resourceMap.getString("JsMenuFile.text")); // NOI18N
        JsMenuFile.setName("JsMenuFile"); // NOI18N

        JsMenuRunFile.setName("JsMenuRunFile"); // NOI18N
        JsMenuRunFile.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JsMenuRunFileActionPerformed(evt);
            }
        });
        JsMenuFile.add(JsMenuRunFile);

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(br.com.datacom.Desktop_PD1901App.class).getContext().getActionMap(Desktop_PD1901View.class, this);
        exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
        exitMenuItem.setName("exitMenuItem"); // NOI18N
        JsMenuFile.add(exitMenuItem);

        menuBar.add(JsMenuFile);

        JsMenuConnections.setText(resourceMap.getString("JsMenuConnections.text")); // NOI18N
        JsMenuConnections.setName("JsMenuConnections"); // NOI18N
        JsMenuConnections.addMenuListener(new javax.swing.event.MenuListener() {
            public void menuCanceled(javax.swing.event.MenuEvent evt) {
            }
            public void menuDeselected(javax.swing.event.MenuEvent evt) {
                JsMenuConnectionsMenuDeselected(evt);
            }
            public void menuSelected(javax.swing.event.MenuEvent evt) {
            }
        });

        ConectTo.setText(resourceMap.getString("ConectTo.text")); // NOI18N
        ConectTo.setName("ConectTo"); // NOI18N
        ConectTo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ConectToActionPerformed(evt);
            }
        });
        JsMenuConnections.add(ConectTo);

        jSeparator1.setName("jSeparator1"); // NOI18N
        JsMenuConnections.add(jSeparator1);

        menuBar.add(JsMenuConnections);

        JsMenuHelp.setText(resourceMap.getString("JsMenuHelp.text")); // NOI18N
        JsMenuHelp.setName("JsMenuHelp"); // NOI18N

        aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
        aboutMenuItem.setName("aboutMenuItem"); // NOI18N
        JsMenuHelp.add(aboutMenuItem);

        JsMenuContacts.setName("JsMenuContacts"); // NOI18N
        JsMenuHelp.add(JsMenuContacts);

        menuBar.add(JsMenuHelp);

        statusPanel.setName("statusPanel"); // NOI18N

        statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

        statusMessageLabel.setName("statusMessageLabel"); // NOI18N

        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

        progressBar.setName("progressBar"); // NOI18N

        javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
        statusPanel.setLayout(statusPanelLayout);
        statusPanelLayout.setHorizontalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 750, Short.MAX_VALUE)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(statusMessageLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 564, Short.MAX_VALUE)
                .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(statusAnimationLabel)
                .addContainerGap())
        );
        statusPanelLayout.setVerticalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(statusMessageLabel)
                    .addComponent(statusAnimationLabel)
                    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(3, 3, 3))
        );

        setComponent(PanelPrincipal);
        setMenuBar(menuBar);
        setStatusBar(statusPanel);

Obrigado.

anap2.1

Dá pra editar tudo oq você arrasta. E vc ainda consegue adicionar o código. Não diretamente na classe, mas em “propriedades” do componente.

Schimuneck

É ezatamente isso que fasso.

Não tenho problemas com o NetBeans, mas agora dizer qual é melhor ja não posso.

Schimuneck

Resolvido, era só dar um clean no progeto deer.

Criado 6 de abril de 2011
Ultima resposta 15 de abr. de 2011
Respostas 17
Participantes 5