Netbeans e Java - dor de cabeça. [RESOLVIDO]

Eu realmente não estou aguentando mais… Estou para explodir.Eu usava o sistema Gentoo, desde de lá, o Netbeans já veio apresentar problemas para mim, como por exemplo, falta de acentuação, e sua interface não está normal; padrão do Java. Então, dessa forma, eu fui para o maldito Ubuntu, que por sinal é uma porcaria de Linux! Esse gnome então, nem se fala! E o problema simplesmente continua! Preciso desenvolver um software, mas nunca dá, cada hora é um problema que vem. A interface está totalmente esquisita, não está o normal do Java. Agora, não quer executar o programa. Alguém, por favor, poderia citar aqui, um bom sistema Linux para desenvolver Java ? Ou uma boa IDE ? Preciso desenvolver um software. Por favor, me dêem dicas de IDE, SO, etc.

Eu queria usar o Eclipse, mas o problema é que no Eclipse, eu não consigo utilizar o Pallete de swing. Lá, eu tenho que criar tudo na mão. Eu até crio, mas o problema é posicionar o menu, botão, textos, etc. :frowning:
Veja, não executa:


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package estoque;

/**
 *
 * @author system
 */
public class Inicial extends javax.swing.JPanel {

    /**
     * Creates new form Inicial
     */
    public Inicial() {
        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() {

        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();

        jLabel1.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        jLabel1.setText("Bem vindo(a)!");

        jButton1.setText("jButton1");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addComponent(jLabel1)
                .addContainerGap(253, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(63, 63, 63))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(25, 25, 25)
                .addComponent(jLabel1)
                .addGap(41, 41, 41)
                .addComponent(jButton1)
                .addContainerGap(175, Short.MAX_VALUE))
        );
    }// </editor-fold>
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package estoque;

/**
 *
 * @author system
 */
public class Start {
    
    public static void main(String args[])
    {
        
        
         new Inicial().setVisible(true);
        
    }
    
}

Force o NetBeans a rodar usando algum LAF “nativo” do Java, como o Metal ou o Nimbus.
Eu já tive muuitos problemas com a interface do NetBeans no Gnome tbm.
Veja o seu outro post sobre como fazer isso: http://www.guj.com.br/java/263681-interface-grafica-do-java-totalmente-diferente

[]'s

Olá! Grato por responder!
Afinal, você utiliza qual sistema ? Qual seria recomendado para programar Java ? Eu sei que isso é relativo, mas… Quero um sistema que se adpta bem ao Java.
Obrigado, o comando que você passou funcionou perfeitamente. Agora, por que, o meu programa não executa ? ;s

Quando abro uma nova JFrame, as vezes o Netbeans gera isso:


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package estoque;

/**
 *
 * @author system
 */
public class NewJFrame extends javax.swing.JFrame {

    /**
     * Creates new form NewJFrame
     */
    public NewJFrame() {
        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() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

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

    /**
     * @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(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    // End of variables declaration
}

Sendo que da outra vez ele não gerou… Sinceramente, isso está bugado ,não é possível…
Agora, pq o meu programa anterior não executa ?

Atualmente uso Windows 7.
Não tenho mais paciência para usar Linux como plataforma de trabalho.
Só uso Linux em servidores.

Vou ver seu código, já posto.

Poxa, usar Windows para ficar formatando a cada 2 meses é lamentável… Mas, o Windows 7 é melhor para programar Java ?
Veja o código do primeiro post, que não executa.

Oloko, o que você faz para precisar formatar a cada 2 meses?
Se você gerenciar o SO direitinho, manter um bom antivírus atualizado e o SO atualizado, não tem problema nenhum.
Estou com uma instalação do W7 ativa desde maio de 2011 no notebook que comprei e ainda não tive sequer um probleminha.
Agora, se você é do tipo de pessoa que instala e desinstala todo tipo de porcaria, fica rodando “limpadores” como o ccleaner o tempo todo, não atualiza o SO, usa algum antivirus meia boca, ai concordo com você, seu Windows vai para o saco rapidinho.

Vou ver seu código.

Hehehe o seu erro é bem bobinho.
Meus alunos fazem isso o tempo todo quando entro na parte de interface gráfica em Java.
Veja a linha 11. Qual classe está sendo herdada? Matou a charada?
No NetBeans, quando vai criar a janela, você está errando na hora de escolher que tipo de componente quer criar.

[]'s

Utilizo Linux à anos. Sinceramente, seria algo lamentável eu migrar para o Windows. Eu nem consigo fazer isso.

Então, gosto é gosto não é mesmo? Ficar brigando por causa de SO, IDE, religião, etc. é perda de tempo e sinal de imaturidade (não estou falando q vc é imaturo).
Viu qual foi o seu erro?

Isso é verdade. Bom, eu vi o erro sim, mas eu errei porcausa do maldito Netbeans, que cria código todo confuso. Se eu criasse na mão seria muito mais tranquilo.
Agora, não consigui compreender o erro. Poderia me passar a solução do erro ? Só assim consigo entender. Oo

Na hora de criar o formulário, você escolheu JPanel ao invés de JFrame.
Para resolver, crie um formulário do tipo JFrame, abra o formulário do JPanel, selecione todos os componentes, copie, vá no JFrame e cole.

Coloque uma coisa na cabeça. Código gerado, seja ele qual for, não deve ser entendido. Ele é gerado, então você não precisa se preocupar com ele. O GroupLayout (JDK 6 e superiores) usado por padrão no Matisse é um gerenciador de layout feito para ser usado através de geração e não manualmente. Código gerado vai ser “bagunçado” (aka difícil de ler) em qualquer IDE. Quem tem que gerenciar esse código é a ferramenta, não você. Quando você precisa ter um controle mais fino sobre a geração, basta ir na aba Code (Código) do NetBeans (fica junto com a aba Properties (Propriedades) dos componentes e então fazer as configurações específicas que precisar.

[]'s

hoje prefiro fazer tudo manualmente, é até melhor para posicionar as coisas.
com o comando setLocation. este automático do netbeans, é bom, mas chega uma hora que a pessoa perde o controle. E tem que cuidar para a biblioteca estar adicionada e não se perder, se não o jar não vai rodar.

Tenho linux e windows, uso windows, 98 por cento e o netbeans, toda hora.

antigamente me irritava pois as vezes travava mesmo, aí preferia IDE menores como jcreator ou jedir, coisa assim,e parece que funcionava melhor e mais rápido mesmo. o netbeans deve fazer muitos cálculos para a coisa funcionar e acaba demorando. o ubuntu, dá opções de escolha, não apareceu nenhuma lá?

senão no windows, dá para escolher uma IDE mais leve, pode facilitar.

mas se o erro for por causa do JPanel, da linha 11, aí nem no bloco de notas, funcionará…

:slight_smile:

Mas, JPanel, não é apenas um painel ? Então pq o netbeans criou um JFrame ?

Afinal, qual a diferença entre os dois no Netbeans ?
Pois é, por isso prefiro programar na mão, mas o problema, como eu disse, ter que posicionar cada um, é complicado. Mas, e os programadores de grandes software ? Eles cria tudo na mão ?

[quote=raghy]hoje prefiro fazer tudo manualmente, é até melhor para posicionar as coisas.
com o comando setLocation. este automático do netbeans, é bom, mas chega uma hora que a pessoa perde o controle. E tem que cuidar para a biblioteca estar adicionada e não se perder, se não o jar não vai rodar.

Tenho linux e windows, uso windows, 98 por cento e o netbeans, toda hora.

antigamente me irritava pois as vezes travava mesmo, aí preferia IDE menores como jcreator ou jedir, coisa assim,e parece que funcionava melhor e mais rápido mesmo. o netbeans deve fazer muitos cálculos para a coisa funcionar e acaba demorando. o ubuntu, dá opções de escolha, não apareceu nenhuma lá?

senão no windows, dá para escolher uma IDE mais leve, pode facilitar.

mas se o erro for por causa do JPanel, da linha 11, aí nem no bloco de notas, funcionará…

:slight_smile:
[/quote]

Cuidado. Usar NullLayout ou AbsolutLayout é desencorajado. O ideal é você deixar que o gerenciador configure a tela para você. O segredo para trabalhar com o Matisse (editor Swing WYSIWYG do NetBeans) é aprender a trabalhar com as âncoras que ele usa, além de usar painéis para separa os componentes.

[quote=hackum]Mas, JPanel, não é apenas um painel ? Então pq o netbeans criou um JFrame ?

Afinal, qual a diferença entre os dois no Netbeans ?
Pois é, por isso prefiro programar na mão, mas o problema, como eu disse, ter que posicionar cada um, é complicado. Mas, e os programadores de grandes software ? Eles cria tudo na mão ?[/quote]

JPanel é um painel. JFrame é uma janela.
JPanel é um container de componentes, usado para criar separações de vários componentes. Um JPanel NUNCA vai ser uma janela. Você pode inserir JPanels em um JFrame e então exibir o Frame, que é a janela.
Recomendo que você dê uma estudada no Swing. Saber diferenciar um painel de um frame é algo bem básico e essencial para quem trabalha com Swing.

[]'s

Eu entendo a questão do JPanel e JFrame. Mas, a questão é que o Netbeans que está me confudindo. Eu crio um JFrame e consigo posicionar os elementos sem o JPanel. Eu apenos crio o JFrame.

Você que está se confundindo.
Na hora de criar o seu formulário, ao invés de escolher JFrame, vc escolheu JPanel.
Ai você instancia um JPanel e dá um setVisible nele, como se estivesse trabalhando com o JFrame. Isso não funciona, afinal, um JPanel não é uma janela.
Você errou na hora da criação, foi isso que aconteceu. Entendeu?

Sim. Foi distração minha. Eu achei que estava criando o JFrame. Então, para encerrar, eu não preciso criar o JPanel, porque, estou criando o JFrame, e eu consigo posicionar os elementos. Correto ? Isso no netbeans, se fosse na mão eu teria que ter o JPanel para posicionar.

Isso. Mas nada impede que você arraste JPanels (da paleta) dentro do JFrame para ajudar a organizar seus outros componentes. Isso é até recomendável como falei em uma das postagens anteriores.

[]'s

Sim, como por exemplo, colocar background.
Bom, no mais é isso. Eu agradeço de coração por dedicar esse tempo para tirar as dúvidas dos usuários aqui do fórum. Fico feliz por existir pessoas assim como você e dentre vários outros aqui, que tem a boa vontade de ensinar.

Muito obrigado. Assunto encerrado. Um grande abraço!