Uso de packages para organização de trabalho!

20 respostas
rasinc

Olá pessoal, é o seguinte…
Estou organizando meu projecto e classes usando package.

Criei um package , no caso a pasta contem vários ícons, dentro da mesma pasta possui uma classe icon.java onde está declarado este package e usando a classe ImageIcon icon = new ImageIcon(etc…) para instanciar os ícones da mesma pasta; Num outro diretório de nome gui, o package no caso, tem uma outra classe login, que precisa dos ícones instanciados na outra classe. Como fazer para que isso ocorra certo?

20 Respostas

ViniGodoy

Basta usar um import.

Anime

Oi rasinc,

Só para complementar http://www.sergio.pro.br/trabalhos/23_manipulacao_de_packages_em_java.pdf

rasinc

O problema é que mesmo usando import ao compilar dá erro, não reconhece os ícones instanciados no outro diretório…

drsmachado

Qual a mensagem do erro?
Em que IDE está codificando?
O netbeans provê recursos bem simples e intuitivos neste caso, mesmo que seja apenas para ver como funciona…

rasinc

Aew pessoal, talvés o erro esteje conforme estou colocando minha dúvida, vamos então aos aspectos práticos:

Eu tenho esta classe aonde instancio os ícones:

package rpdinc.realartsinc.realfinance.icons;

import javax.swing.*;
import java.awt.*;

public class Icon{
    public Icon(){
        // Ícones usados na GUI
        ImageIcon calculadora = new ImageIcon(getClass().getResource("calculator.png"));
        ImageIcon eventos = new ImageIcon(getClass().getResource("eventos.png"));
        ImageIcon ajuda = new ImageIcon(getClass().getResource("ajuda.png"));
        ImageIcon encontrar = new ImageIcon(getClass().getResource("encontrar.png"));
        ImageIcon loginicon = new ImageIcon(getClass().getResource("login.png"));
        ImageIcon novacontaicon = new ImageIcon(getClass().getResource("novaconta.png"));
        ImageIcon minhacontaicon = new ImageIcon(getClass().getResource("minhaconta.png"));
        ImageIcon planejamentoicon = new ImageIcon(getClass().getResource("planejamento.png"));
        ImageIcon geriricon = new ImageIcon(getClass().getResource("gerir.png"));
        ImageIcon balancaicon = new ImageIcon(getClass().getResource("balança.png"));
        ImageIcon moedasicon = new ImageIcon(getClass().getResource("moedas.png"));
        ImageIcon usuarioicon = new ImageIcon(getClass().getResource("usuario.png"));
        ImageIcon graficoicon = new ImageIcon(getClass().getResource("grafico.png"));
        ImageIcon ferramentasicon = new ImageIcon(getClass().getResource("ferramentas.png"));
        ImageIcon fluxoicon = new ImageIcon(getClass().getResource("fluxo.png"));
        ImageIcon amigosicon = new ImageIcon(getClass().getResource("amigos.png"));
        ImageIcon pesquisaricon = new ImageIcon(getClass().getResource("pesquisar.png"));
        ImageIcon propriedadesicon = new ImageIcon(getClass().getResource("propriedades.png"));
    }
}

Tenho uma outra classe noutro pacote que vai precisar dos ícones da classe acima no pacote acima:

/*
 * Autor: Amarildo J. C. Lucas (rasinc)
 * CEO: Real Arts Studio.inc
 * WebSite: www.realarts3d.blogspot.com
 * Descrição: Código responsável pela GUI principal do programa
 * Obs: Deverá ser o mais customizável possível
 */
 
 
package  rpdinc.realartsinc.realfinance.gui; 
 
// Importando pacotes e classes necessárias para uso na aplicação
import java.awt.*;
import javax.swing.*;
import rpdinc.realartsinc.realfinance.icons.Icon;


// Declarando classe e herdando JFrame
public class Home extends JFrame{
  
  // Definindo as váriaveis para os componentes a serem usados
  public Home(){

    
    setTitle("Real Finance");
    Container c = new Container();
    c = getContentPane();
    c.setLayout(new GridBagLayout());

     // Criando Menus
    JMenu minhaconta = new JMenu("Minha Conta");
    minhaconta.setIcon(minhacontaicon);
    JMenu operacoes = new JMenu("Operações");
    operacoes.setIcon(planejamentoicon);

Erro: diz que minhacontaicon, que foi criada na classe Icon do package icon não está instanciada, ou simplemente como se não existisse.

Espero que agora compreendam o problema… flw

ViniGodoy

AH sim, sua classe contém constantes. ENtão mude para:

public class Icons{ // Ícones usados na GUI public static final ImageIcon calculadora = new ImageIcon(Icons.class.getResource("calculator.png")); public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("eventos.png")); public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("ajuda.png")); public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("encontrar.png")); public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("login.png")); public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("novaconta.png")); public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("minhaconta.png")); public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("planejamento.png")); public static final ImageIcon geriricon = new ImageIcon(Icons.class.getResource("gerir.png")); public static final ImageIcon balancaicon = new ImageIcon(Icons.class.getResource("balança.png")); public static final ImageIcon moedasicon = new ImageIcon(Icons.class.getResource("moedas.png")); public static final ImageIcon usuarioicon = new ImageIcon(Icons.class.getResource("usuario.png")); public static final ImageIcon graficoicon = new ImageIcon(Icons.class.getResource("grafico.png")); public static final ImageIcon ferramentasicon = new ImageIcon(Icons.class.getResource("ferramentas.png")); public static final ImageIcon fluxoicon = new ImageIcon(Icons.class.getResource("fluxo.png")); public static final ImageIcon amigosicon = new ImageIcon(Icons.class.getResource("amigos.png")); public static final ImageIcon pesquisaricon = new ImageIcon(Icons.class.getResource("pesquisar.png")); public static final ImageIcon propriedadesicon = new ImageIcon(Icons.class.getResource("propriedades.png")); }

E, na outra classe, você usa assim:

minhaconta.setIcon(Icons.minhacontaicon);

PS: Isso é java MUITO básico. Recomendo que volte estude a linguagem antes de seguir em frente.

rasinc

Aew ViniGodoy, antes agradeço o teu chega, estava mesmo me distanciando cada vez mais dos aspectos teóricos ou conceitos, o que vou rever muito bem já.

Mas mesmo assim, haverá o problema de o método getClass() não ser estático! E as constantes serem estáticas o que causaria um erro. Ok, tirando o método tudo corre muito bem…

Mas quando vamos compilar a classe Home.java eis o problema na seguinte linha:

minhaconta.setIcon(Icons.minhacontaicon);

E restantes com declaração parecida… Simplesmente não reconhece a classe Icons. Dando o erro:

minhaconta.setIcon(Icons.minhacontaicon);
O acento circunflexo aparece em Icons…
Agradecido…

adriano_si

rasinc:
Aew ViniGodoy, antes agradeço o teu chega, estava mesmo me distanciando cada vez mais dos aspectos teóricos ou conceitos, o que vou rever muito bem já.

Mas mesmo assim, haverá o problema de o método getClass() não ser estático! E as constantes serem estáticas o que causaria um erro. Ok, tirando o método tudo corre muito bem…

Mas quando vamos compilar a classe Home.java eis o problema na seguinte linha:

minhaconta.setIcon(Icons.minhacontaicon);

E restantes com declaração parecida… Simplesmente não reconhece a classe Icons. Dando o erro:

minhaconta.setIcon(Icons.minhacontaicon);
O acento circunflexo aparece em Icons…
Agradecido…

É porque sua classe se chama Icon e não Icons…

Perceba que Vini colocou Icons só pra te dar o exemplo…

Abs []

rasinc

Notei, dei conta deste incidente e nomeiei conforme o Vini nomeiou, Icons, e mesmo assim…

ViniGodoy

É só trocar o getClass() por Icons.class

rasinc

E o getResource? vai continuar dando erro por causa dele…

P

Tenta revisar este codigo ai… o que o pessoal falou esta correto… deve ser algum detalhe que vc ta esquecendo

ViniGodoy

Ué, e por que daria erro por causa do getResource?

rasinc

É isso que eu também queria saber, mas o acento circunflexo é apontado de lá. Uma vez que os ícones da classe Icons se encontram no mesmo pacote, não dava para chamarmos directamente?

ImageIcon calculadora = new ImageIcon("calculator.png");
ViniGodoy

O getResource sempre funciona a partir da origem do classPath. Você deve passar o caminho completo:

ImageIcon calculadora = new ImageIcon(Icons.class.getResource("/rpdinc/realartsinc/realfinance/icons/calculator.png"));
rasinc
package rpdinc.realartsinc.realfinance.icons;

import javax.swing.*;
import java.awt.*;

    public class Icons{  
        // Ícones usados na GUI  
        
        public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource	("rpdinc/realartsinc/realfinance/icons/calculator.png"));  
        public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png"));  
        public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png"));  
        public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png"));  
        public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png"));  
        public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png"));  
        public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png"));  
        public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/planejamento.png"));  
        public static final ImageIcon geriricon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/gerir.png"));  
        public static final ImageIcon balancaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/balança.png"));  
        public static final ImageIcon moedasicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/moedas.png"));  
        public static final ImageIcon usuarioicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/usuario.png"));  
        public static final ImageIcon graficoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/grafico.png"));  
        public static final ImageIcon ferramentasicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ferramentas.png"));  
        public static final ImageIcon fluxoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/fluxo.png"));  
        public static final ImageIcon amigosicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/amigos.png"));  
        public static final ImageIcon pesquisaricon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/pesquisar.png"));  
        public static final ImageIcon propriedadesicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/propriedades.png"));  
		public static final ImageIcon titularicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/titulart.png"));
		public static final ImageIcon contaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/contac.png"));
}

Acima é como a classe está agora.

Abaixo os erros que aparecem após a compilação, nas sua maioria os acentos circunflexos em getResource().

Icons.java:6: illegal character: \160 public class Icons{ ^ Icons.java:6: illegal character: \160 public class Icons{ ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:7: illegal character: \160 // Ícones usados na GUI ^ Icons.java:8: illegal character: \160 ^ Icons.java:8: illegal character: \160 ^ Icons.java:8: illegal character: \160 ^ Icons.java:8: illegal character: \160 ^ Icons.java:8: illegal character: \160 ^ Icons.java:8: illegal character: \160 ^ Icons.java:8: illegal character: \160 ^ Icons.java:8: illegal character: \160 ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:9: illegal character: \160 public static final ImageIcon calculadora = new ImageIcon(Icons.class.Icons.getResource ("rpdinc/realartsinc/realfinance/icons/calculator.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: ';' expected public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:10: illegal character: \160 public static final ImageIcon eventos = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/eventos.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: ';' expected public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:11: illegal character: \160 public static final ImageIcon ajuda = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/ajuda.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: ';' expected public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:12: illegal character: \160 public static final ImageIcon encontrar = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/encontrar.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: ';' expected public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:13: illegal character: \160 public static final ImageIcon loginicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/login.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: ';' expected public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:14: illegal character: \160 public static final ImageIcon novacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/novaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: ';' expected public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:15: illegal character: \160 public static final ImageIcon minhacontaicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/minhaconta.png")); ^ Icons.java:16: illegal character: \160 public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/planejamento.png")); ^ Icons.java:16: illegal character: \160 public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/planejamento.png")); ^ Icons.java:16: illegal character: \160 public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/planejamento.png")); ^ Icons.java:16: illegal character: \160 public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/planejamento.png")); ^ Icons.java:16: illegal character: \160 public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/planejamento.png")); ^ Icons.java:16: illegal character: \160 public static final ImageIcon planejamentoicon = new ImageIcon(Icons.class.getResource("rpdinc/realartsinc/realfinance/icons/planejamento.png"));

[code]

rasinc

Eu ainda começo a pensar nos packages… será que seria necessário definir o caminho inteiro das pastas do sistema…

home/rasinc/rpdinc/realartsinc/realfinance/icons;

E se assim fosse, não haveria desvantagens ao mudar o prog. para um outro computador?

ViniGodoy

Não, pq o getResource() não procura nas pastas, e sim no seu ClassPath. O que significa que quando sua aplicação for para dentro de um .jar, ele ainda funcionará, já que as imagens estarão na estrutura certa, dentro do .jar.

rasinc

Então o problema é na ClassPath mesmo, tem que configurar ela para os meus packages, senão, ela não encontra…

rasinc

Agora, consegui resolver, era a ClassPath do projecto, no entanto era só compilar e ao executar, era dessa forma:

java -classpath /home/rasinc rpdinc.realartsinc.realfinance.gui.Home

No entanto surgiu uma segunda dúvida, agora que estamos trabalhando com package, no caso dividindo a aplicação em camadas, e fazendo um teste exemplar como esse:

package rpdinc.realartsinc.realfinance.gui;

/*
 * Autor: Amarildo J. C. Lucas (rasinc)
 * CEO: Real Arts Studio.inc
 * WebSite: www.realarts3d.blogspot.com
 * Descrição: Código responsável pela GUI principal do programa
 * Obs: Deverá ser o mais customizável possível
 */
 
// Importando pacotes e classes necessárias para uso na aplicação
import java.awt.*;
import javax.swing.*;

// Declarando classe e herdando JFrame
public class Home extends JFrame{

	public JButton login = new JButton("Entrar           ");
  
  // Definindo as váriaveis para os componentes a serem usados
  public Home(){
    setTitle("Real Finance");
    Container c = new Container();
    c = getContentPane();
    c.setLayout(new GridBagLayout());
    
    // Ícones usados na GUI
    ImageIcon calculadora = new ImageIcon(getClass().getResource("calculator.png"));
    ImageIcon eventos = new ImageIcon(getClass().getResource("eventos.png"));
    ImageIcon ajuda = new ImageIcon(getClass().getResource("ajuda.png"));
    ImageIcon encontrar = new ImageIcon(getClass().getResource("encontrar.png"));
    ImageIcon loginicon = new ImageIcon(getClass().getResource("login.png"));
    ImageIcon novacontaicon = new ImageIcon(getClass().getResource("novaconta.png"));
    ImageIcon minhacontaicon = new ImageIcon(getClass().getResource("minhaconta.png"));
    ImageIcon planejamentoicon = new ImageIcon(getClass().getResource("planejamento.png"));
    ImageIcon geriricon = new ImageIcon(getClass().getResource("gerir.png"));
    ImageIcon balancaicon = new ImageIcon(getClass().getResource("balança.png"));
    ImageIcon moedasicon = new ImageIcon(getClass().getResource("moedas.png"));
    ImageIcon usuarioicon = new ImageIcon(getClass().getResource("usuario.png"));
    ImageIcon graficoicon = new ImageIcon(getClass().getResource("grafico.png"));
    ImageIcon ferramentasicon = new ImageIcon(getClass().getResource("ferramentas.png"));
    ImageIcon fluxoicon = new ImageIcon(getClass().getResource("fluxo.png"));
    ImageIcon amigosicon = new ImageIcon(getClass().getResource("amigos.png"));
    ImageIcon pesquisaricon = new ImageIcon(getClass().getResource("pesquisar.png"));
    ImageIcon propriedadesicon = new ImageIcon(getClass().getResource("propriedades.png"));
    
    // Bordas para os paineis
    JLabel bevelOperacoes =  new JLabel("Operações", JLabel.CENTER);
    bevelOperacoes.setFont(new Font("timesnewroman", Font.BOLD, 20));
    bevelOperacoes.setBorder(BorderFactory.createRaisedBevelBorder());
    
    // Criando os paineis    
    JPanel painelGeral = new JPanel();
    painelGeral.setLayout(new GridBagLayout());
    
    JPanel menuPainel = new JPanel();
    menuPainel.setBackground(Color.WHITE);
    menuPainel.setLayout(new GridBagLayout());
    
    JPanel barPainel = new JPanel();
    
    JPanel tabsPainel = new JPanel();
    tabsPainel.setLayout(new GridBagLayout());
    tabsPainel.setBackground(Color.BLUE);
    
    
    JPanel minhaConta = new JPanel();
    minhaConta.setLayout(new GridBagLayout());
    minhaConta.setPreferredSize(new Dimension(2000, 2000));
    
    JPanel planejamento = new JPanel();
    JPanel extras = new JPanel();
   
    // Criando as tabs
    JTabbedPane tab = new JTabbedPane();
    tab.setTabPlacement(JTabbedPane.TOP);
    tab.addTab("Finanças", null, minhaConta, "Operações sobre contas");
    tab.addTab("Planejamento", null, planejamento,  "");
    
    // Criando Menus
    JMenu minhaconta = new JMenu("Minha Conta");
    minhaconta.setIcon(minhacontaicon);
    JMenu operacoes = new JMenu("Operações");
    operacoes.setIcon(planejamentoicon);
    
    // Criando a barra que conterá os menus
    JMenuBar barraMenu = new JMenuBar();
    setJMenuBar(barraMenu);
    barraMenu.add(minhaconta);
    barraMenu.add(operacoes);
    //minhaConta.add(barraMenu);
   
    // Criando uma barra de ferramentas
    JToolBar toolBar = new JToolBar();
    toolBar.setFloatable(false);
    toolBar.setRollover(true);
    
    // Criando os componentes para a barra de ferramentas
    JLabel labelCalc = new JLabel();
    labelCalc.setText("R-Calc");
    labelCalc.setIcon(calculadora);
    labelCalc.setHorizontalTextPosition(SwingConstants.CENTER);
    labelCalc.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btnCalc = new JButton();
    btnCalc.setToolTipText("Faça cálculos financeiros");
    btnCalc.setBorderPainted(false);
    btnCalc.add(labelCalc);
    toolBar.add(btnCalc);
    toolBar.addSeparator();
    
    
    JLabel labelEventos = new JLabel();
    labelEventos.setText("Eventos");
    labelEventos.setIcon(eventos);
    labelEventos.setHorizontalTextPosition(SwingConstants.CENTER);
    labelEventos.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btnEventos = new JButton();
    btnEventos.setToolTipText("Crie e gere seus eventos");
    btnEventos.setBorderPainted(false);
    btnEventos.add(labelEventos);
    toolBar.add(btnEventos);
    toolBar.addSeparator();
    
    
    JLabel labelMoedas = new JLabel();
    labelMoedas.setText("R-Conversor");
    labelMoedas.setIcon(moedasicon);
    labelMoedas.setHorizontalTextPosition(SwingConstants.CENTER);
    labelMoedas.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btnmoedas = new JButton();
    btnmoedas.setToolTipText("Conversor de Moedas");
    btnmoedas.setBorderPainted(false);
    btnmoedas.add(labelMoedas);
    toolBar.add(btnmoedas);
    toolBar.addSeparator();
    
    JLabel labelChart = new JLabel();
    labelChart.setText("FreeChart");
    labelChart.setIcon(graficoicon);
    labelChart.setHorizontalTextPosition(SwingConstants.CENTER);
    labelChart.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btngraficos = new JButton();
    btngraficos.setToolTipText("Fluxo de Gráficos");
    btngraficos.add(labelChart);
    btngraficos.setBorderPainted(false);
    toolBar.add(btngraficos);
    toolBar.addSeparator();
    
    JLabel labelUsuario = new JLabel();
    labelUsuario.setText("Usuário");
    labelUsuario.setIcon(usuarioicon);
    labelUsuario.setHorizontalTextPosition(SwingConstants.CENTER);
    labelUsuario.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btnusuario = new JButton();
    btnusuario.setToolTipText("Marque ou desmarque para deslogar");
    btnusuario.add(labelUsuario);
    btnusuario.setBorderPainted(false);
    toolBar.add(btnusuario);
    toolBar.addSeparator();
    
    JLabel labelBalanco = new JLabel();
    labelBalanco.setText("Balanco");
    labelBalanco.setIcon(balancaicon);
    labelBalanco.setHorizontalTextPosition(SwingConstants.CENTER);
    labelBalanco.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btnbalanco = new JButton();
    btnbalanco.setToolTipText("Balanços e estimativas Gerais de sua conta");
    btnbalanco.add(labelBalanco);
    btnbalanco.setBorderPainted(false);
    toolBar.add(btnbalanco);
    toolBar.addSeparator();
    
    JLabel labelFerramentas = new JLabel();
    labelFerramentas.setText("Ferramentas");
    labelFerramentas.setIcon(ferramentasicon);
    labelFerramentas.setHorizontalTextPosition(SwingConstants.CENTER);
    labelFerramentas.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btnferramentas = new JButton();
    btnferramentas.setToolTipText("Opções sobre as ferramentas");
    btnferramentas.setBorderPainted(false);
    btnferramentas.add(labelFerramentas);
    toolBar.add(btnferramentas);
    toolBar.addSeparator();
    
    JLabel labelAjuda = new JLabel();
    labelAjuda.setText("Ajuda");
    labelAjuda.setIcon(ajuda);
    labelAjuda.setHorizontalTextPosition(SwingConstants.CENTER);
    labelAjuda.setVerticalTextPosition(SwingConstants.BOTTOM);
    JButton btnAjuda = new JButton();
    btnAjuda.setToolTipText("Manual, e ajuda para o usuário");
    btnAjuda.setBorderPainted(false);
    btnAjuda.add(labelAjuda);
    toolBar.add(btnAjuda);
    toolBar.add(new JSeparator(SwingConstants.VERTICAL));
    toolBar.addSeparator(new Dimension(5, 40));
    toolBar.addSeparator(new Dimension(10, 40));
    
   
    JTextField txfprocurar = new JTextField(10);
    JButton btnprocurar = new JButton();
    btnprocurar.setToolTipText("Pesquisar no Real Finance");
    btnprocurar.setBorderPainted(false);
    btnprocurar.setIcon(encontrar);
    toolBar.add(txfprocurar);
    toolBar.add(btnprocurar);
    
    // Componentes paras a barra do painel lateral
    
    login.setIcon(loginicon);
    login.setBorderPainted(false);
    JButton novaconta = new JButton("Nova Conta       ");
    novaconta.setIcon(novacontaicon);
    novaconta.setBorderPainted(false);
    JButton gerirconta = new JButton("Gerir Conta       ");
    gerirconta.setIcon(geriricon);
    gerirconta.setBorderPainted(false);
    JButton btnfluxo = new JButton("Gerar Fluxo       ");
    btnfluxo.setIcon(fluxoicon);
    btnfluxo.setBorderPainted(false);
    JButton btnamigos = new JButton(" Meus Financeiros");
    btnamigos.setIcon(amigosicon);
    btnamigos.setBorderPainted(false);
    JButton btnpesquisar = new JButton("Super Pesquisa");
    btnpesquisar.setIcon(pesquisaricon);
    btnpesquisar.setBorderPainted(false);
    JButton btnpropriedades = new JButton("Outros Serviços");
    btnpropriedades.setIcon(propriedadesicon);
    btnpropriedades.setBorderPainted(false);
    
    
    
    
    
    barPainel.add(toolBar, new GridBagConstraints(0,0,3,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0,5,0,0),0,0));
    menuPainel.add(bevelOperacoes, new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(0,0,0,0),0,0)); 
    menuPainel.add(login, new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(30,5,0,5),0,0));
    menuPainel.add(novaconta, new GridBagConstraints(0,1,1,2,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(2,5,0,5),0,0));
    menuPainel.add(gerirconta, new GridBagConstraints(0,2,1,3,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(45,5,0,5),0,0));
    menuPainel.add(btnfluxo, new GridBagConstraints(0,3,1,4,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(45,5,0,5),0,0));
    menuPainel.add(btnamigos, new GridBagConstraints(0,4,1,5,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(90,5,0,5),0,0));
    menuPainel.add(btnpesquisar, new GridBagConstraints(0,5,1,6,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(93,5,0,5),0,0));
    menuPainel.add(btnpropriedades, new GridBagConstraints(0,6,1,7,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(140,5,0,5),0,0));
    painelGeral.add(barraMenu, new GridBagConstraints(0,0,3,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0,5,0,5),0,0));
    painelGeral.add(barPainel, new GridBagConstraints(0,0,3,1,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(20,0,0,0),0,0));
    painelGeral.add(menuPainel, new GridBagConstraints(0,1,1,2,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0,3,5,5),0,0));
    //tabsPainel.add(tab, new GridBagConstraints(0,0,7,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0,0,0,350),0,0));
    //painelGeral.add(tabsPainel, new GridBagConstraints(1,1,7,2,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0,0,0,20),0,0));
    c.add(painelGeral, new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,0,0,0),0,0));
    
    setSize(777,466);
    setLocationRelativeTo(null);
    //setResizable(false);
    setVisible(true);
 
    
    
    
  }
  
  public static void main(String[] args){
    try {
      UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
    } 
    catch (Exception e) {
      e.printStackTrace();
    }
    
   
    Home home =  new Home();
    home.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

A classe acima é a classe que disponibiliza a gui principal da aplicação.

Na gui temos o botão entrar em que a ideia é quando clicamos nele chame outra janela, a de login que tá no mesmo pacote. No entanto quando temos uma classe que eu chamei de Entrar.java que está em outro pacote:

package rpdinc.realartsinc.realfinance.control;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import rpdinc.realartsinc.realfinance.gui.Home;
import rpdinc.realartsinc.realfinance.gui.Login;

public class Entrar implements ActionListener{

	private Home home;
	

	public Entrar(){
		home = new Home();
		home.login.addActionListener(this);
	}

	public void actionPerformed(ActionEvent evento){
		if(evento.getSource() == home.login){			
			Login logon = new Login();
		} 
	}
}

Ao compilar a classe Entrar.java eis o erro:
package rpdinc.realartsinc.realfinance.gui does not exist

Tem uma forma, tal como a de executar a classe directamente pelo classpath:

java -classpath /home/rasinc rpdinc.realartsinc.realfinance.gui.Home

Mas no casso para compilar? Segundo é como dentro de uma aplicação chamar outra.
Janela que chama outra janela que chama outra, haverá vários main?
Agradecia…

Criado 15 de novembro de 2010
Ultima resposta 20 de nov. de 2010
Respostas 20
Participantes 6