Ir para conteúdo
Fórum Script Brasil

iSoron

Veteranos
  • Total de itens

    1.317
  • Registro em

  • Última visita

Posts postados por iSoron

  1. Objetos alocados na pilha são perdidos assim que o escopo no qual eles estão inseridos termina. Por exemplo:

    int teste() {
        Classe ins;
        ...
        return 0;
        // ins é desalocado
    }
    Enquanto que:
    int teste() {
        Classe *ins = new Classe;
        ...
        return 0;
        // ins continua alocado em algum lugar da memória
    }
    Se você não fizer a desalocação, o objeto vai continuar na memória até o programa terminar de executar. Isso, às vezes, é útil. Por exemplo:
    Classe * cria_objeto() {
        Classe *ins = new Classe;
        ...
        return ins;
    }

    A versão sem ponteiros não funcionaria (ou funcionaria de maneira inconsistente), pois o objeto seria desalocado.

  2. Opa, já sim cara. Foi mal pela demora... Peguei algumas apostilas. Deixa eu te perguntar, entre Netbeans e Eclipse qual você usaria?
    Eu geralmente recomendo o Eclipse, mas o Netbeans andou melhorando bastante nas últimas versões. Compare os dois, e veja qual você prefere. :)

    Nunca usei o Netbeans, uso o PyDev no Eclipse para programar e Python e gosto dele. Com o Eclipse eu consigo criar GUI em java (acho que são os JFrames, isso)?

    Consegue sim. A rigor, dá pra criar interfaces gráficas em Java com qualquer editor de textos. O Eclipse e o Netbeans oferecem algumas ferramentas pra facilitar as coisas, mas elas são dispensáveis.

  3. Segundo a documentação:

    The first call to nextRecord() returns the record data from the first record in the sequence. Subsequent calls to nextRecord() return the next consecutive record's data. To return the record data from the previous consecutive from any given point in the enumeration, call previousRecord(). On the other hand, if after creation, the first call is to previousRecord(), the record data of the last element of the enumeration will be returned. Each subsequent call to previousRecord() will step backwards through the sequence until the beginning is reached.

    Ou seja, na primeira chamada, ele retorna o primeiro registro.

    Nota: Os ids começam em 1, se não me engano.

  4. Meio difícil resolver o problema sabendo tão pouco sobre a aplicação, mas o erro é claro: você está tentando chamar um método (ou coisa parecida) de um objeto nulo. Tem algum depurador por aí? Você pode ir executando o programa passo a passo e ver quem exatamente está retornando o nulo.

  5. Você já estudou orientação a objetos? Se não, é um bom lugar para começar.

    Procura os livros Java Core, ou Java How to Program.

    O que eu tenho algumas dúvidas, os programas criados em Linux vão rodar igualmente no Windows?

    Sim. :)

  6. String stringNomes = "";
    for(String n : nomes) {
        stringNomes = stringNomes + n + "\n";
    }

    ps: Concatenar Strings assim, sem StringBuilder, pode gerar problemas de performance. Mas como são poucos elementos, não há muitos problemas.

  7. Uma solução sugerida pelo pessoal no fórum da Sun:

    import javax.swing.*;
    import javax.swing.text.*;
    
    class MyTextVerifier extends PlainDocument
    {
        public void insertString(int offset, String str, AttributeSet attSet)
            throws BadLocationException
        {
            boolean valid = false;
            if (str == null) return;
    
            String old = getText(0, getLength());
            String newStr = old.substring( 0, offset ) + str + old.substring( offset );
    
    
            valid = isValid(newStr);
            if (valid) super.insertString( offset, str, attSet );
        }
    
        public boolean isValid(String str) {
            return str.length() < 10;
        }
    }
    
    class Teste extends JFrame {
        public Teste()
        {
            setSize(300, 100);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
            JTextField f = new JTextField();
            f.setDocument(new MyTextVerifier());
            add(f);
        }
    
        public static void main(String[] args) {
            Teste t = new Teste();
            t.setVisible(true);
        }
    }

    Na função isValid() você pode acrescentar outras opções de validação.

  8. O código correto seria assim:

    import java.util.*;
    import java.io.*;
    
    public class Ugestao
    {
        private String nome;
        ArrayList <Pedido>pedidos_atendidos;
        ArrayList <Pedido>pedidos_nao_atendidos;
        ArrayList <Veiculos>taxis;
        ArrayList <Veiculos>shuttles;
    
    
        public Ugestao()
        {
            nome = "";
            pedidos_atendidos = new ArrayList<Pedido>();
            pedidos_nao_atendidos = new ArrayList<Pedido>();
            taxis = new ArrayList<Veiculos>();
            shuttles = new ArrayList<Veiculos>();
        }
    
    
        public Ugestao(String nome)
        {
            this.nome = nome;
            pedidos_atendidos = new ArrayList<Pedido>();
            pedidos_nao_atendidos = new ArrayList<Pedido>();
            taxis = new ArrayList<Veiculos>();
            shuttles = new ArrayList<Veiculos>();
    
        }
    
        public ArrayList<Pedido> getpedidosatendidos(){return  pedidos_atendidos;}
    
        public ArrayList<Pedido> getpedidos_nao_atendidos(){return  pedidos_nao_atendidos;}
    
        public void addpedidonovo(String nome, String local_recolha, String local_descarga, String contacto, String numero_pessoas){
    
            pedidos_nao_atendidos.add(new Pedido(nome, local_recolha , local_descarga , contacto, numero_pessoas));
    
        }
    }

    O problema era que você estava redeclarando os atributos no construtor. Então ao invés de construir os atributos do objeto, você só estava construindo algumas variáveis locais.

  9. Há uma diferenca entre estes dois casos:

    class Teste {
        public static int a;
        public int b;
    
        public static void main(String args[]) {
            Teste t = new Teste();
            System.out.println(t.b);
            System.out.println(Teste.a);
       }
    }

    A diferenca é que as variáveis estáticas pertencem à classe (ex: Teste.a), enquanto as variáveis não estáticas pertencem aos objetos (ex: new Teste().b ). Então não faz sentido dizer Teste.b. Você precisa criar um objeto primeiro.

  10. Se o problema for só abrir em uma nova janela, você pode usar:

    getAppletContext().showDocument(new URL(link), "_blank")
    Pra coisas mais complexas, você pode usar javascript mesmo:
    getAppletContext().showDocument(new URL("java script: ..."))

    obs: "javascript" é junto, uma palavra só. No código saiu separado por culpa do fórum.

  11. Já experimentou usar alguma ferramenta mais elaborada, como o Google Analytics? Ele mostra algumas estatísticas bem detalhadas sobre os usuários do site. Só não gera a figura do contador..

    ps: como essa dúvida não é específica de Java, vou mover para uma secão mais adequada.

×
×
  • Criar Novo...