Olá pessoal, estou correndo contra o tempo, tenho uma aplicação que tem que ser dividida em pacotes seguindo um certo padrão definido. O problema é o seguinte, eu setei os meus pacotes e configurei o classepath, até aí tudo bem, mas simplesmente quando tento importar um pacote(package) ocorre o seguinte erro dizendo que tal package não existe. Salvem-me o dia por farvor!!! flw…
Urgente - Packages
8 Respostas
Posta como eh esse padrao e o que voce tah montando!
qual a IDE vc esta usando?
Não estou usando nenhuma IDE, estou usando o “nano” como editor de textos… Um exemplo prático do que está acontecendo é o seguinte:
package exemplo;
package testaexemplo;
Quando no código de baixo :
package testaexemplo;
import exemplo;
Tento importar exemplo, vem um erro dizendo que o package exemplo does no exist. Mas no entanto quando compilo apenas exemplo não dã erro algum no package. Eu compilo usando o javac Exemplo.java e executo java -classpath /home/rasinc exemplo.Exemplo
Olá rasinc,
Por favor, apenas confirme pra gente o que está acontecendo.
Pelo comando que enviou:
java -classpath /home/rasinc exemplo.Exemplo
você deve ter criado aí os diretórios “/home/rasinc/exemplo” e “/home/rasinc/testaexemplo”
A classe Exemplo foi criada no diretório “/home/rasinc/exemplo” e a outra classe foi criada em “/home/rasinc/testaexemplo”.
É isso mesmo o que foi feito?
[]s
Não estou usando nenhuma IDE, estou usando o “nano” como editor de textos… Um exemplo prático do que está acontecendo é o seguinte:package exemplo;package testaexemplo;Quando no código de baixo :
package testaexemplo; import exemplo;Tento importar exemplo, vem um erro dizendo que o package exemplo does no exist. Mas no entanto quando compilo apenas exemplo não dã erro algum no package. Eu compilo usando o javac Exemplo.java e executo java -classpath /home/rasinc exemplo.Exemplo
Você tem que importar alguma coisa do pacote exemplo… sempre passe o Path da classe que quer importar import exemplo.MinhaClasse; ou se quiser importar todo o pacote precisa fazer import exemplo.*;
Do jeito que você está fazendo o compilador não sabe o que você quis importar ao certo, ele vai atrás de uma classe chamada exemplo.java na raiz do Sistema…
Abs []
Quis dar um exemplo rápido e acabei me engasgando, mas a ideia é importar a classe de um dos pacotes noutro pacote, dá um erro dizendo que o pacote não existe…
Cara, investe um tempo pra nos mostrar o que estás fazendo, pra nós também tirarmos uma parte de nosso tempo pra te ajudar.
Coloca aqui tuas classes, onde elas estao fisicamente, como estás compilando e qual o erro que está dando… Não esqueça de utilizar as Tags que facilitam a vida no fórum do GUJ…
Abs []
Consegui resolver o erro, era o classpath dando trabalho, mas no entanto a aplicação não executa o evento gerado. É assim:
package control;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import gui.Home;
import gui.Login;
public class Entrar implements ActionListener{
private Entrar evento = new Entrar();
private Home home = new Home();
public Entrar(){
home.login.addActionListener(evento);
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource() == home.login){
new Login();
}
}
}
A classe acima é responsável pelo evento do botão (JButton login = new JButton(“Entrar”)
que faz parte da classe abaixo:
package 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.*;
import java.awt.event.*;
import control.Entrar;
// Declarando classe e herdando JFrame
public class Home extends JFrame{
public JButton login = new JButton("Entrar ");
JButton btnmoedas = new JButton();
JButton novaconta = new JButton("Nova Conta ");
// Definindo as váriaveis para os componentes a serem usados
public Home(){
HomeGui();
}
public void HomeGui(){
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();
//barraMenu.setBackground(Color.lightGray);
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);
btnmoedas.setToolTipText("Conversor de Moedas");
//btnmoedas.addActionListener(evento);
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("Buscar:", 10);
txfprocurar.setPreferredSize(new Dimension(0, 25));
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);
//novaconta.addActionListener(evento);
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(870,540);
setLocationRelativeTo(null);
//setResizable(false);
setVisible(true);
}
/*private class eventoGui implements ActionListener{
public void actionPerformed(ActionEvent ev){
if(ev.getSource() == login){
new Login();
}
}
}*/
public static void main(String[] args){
/*try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
}
catch (Exception e) {
e.printStackTrace();
}*/
try {
// select Look and Feel
//UIManager.setLookAndFeel("com.jtattoo.plaf.smart.SmartLookAndFeel");
//UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
//UIManager.setLookAndFeel( new com.nilo.plaf.nimrod.NimRODLookAndFeel());
//UIManager.setLookAndFeel(new rpdinc.realartsinc.realfinance.Login.SubstanceLookAndFeel());
UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
// start application
}
catch (Exception ex) {
ex.printStackTrace();
}
Home home = new Home();
home.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Compila sem erros, mas quando clico em login, não gera o evento… Agradeço a ajuda urgente… Pois quero separar meu projecto em camadas e isso está me atrasando avançar com outras funcionalidades…