Olá;
Estou com dificuldades para implementar minha primeira interface. A questão é a seguinte:
Tenho uma interface chamada IniSiscom que tem um VETOR onde eu preciso acessar a posição VETOR[0] que está declarado desta forma.
public interface IniSiscom {
public String[] Inicio = {
"D:\JavaProject\Siscom\Icones\New.JPG",
"D:\JavaProject\Siscom\IniSiscom.txt"
};
}
Preciso acessar este vetor da interface de dentro da classe CadCli. Alguém ajuda ?
A principio criei uma classe interna assim:
class Inicio implements IniSiscom{
}
NetBeans 4.01EA2
Java 5.0
Valeu.
qual o erro q ta dando? posta seu código pra gente ver, a principio é assim por ex:
String [] vetor = IniSiscom.Inicio;
String primeiraString = IniSiscom.Inicio[0];
String segundaString = IniSiscom.Inicio[1];
Meu código
private class Inicio implements IniSiscom{
String [] Imagens = IniSiscom.Inicio;
String Caminho = IniSiscom.Inicio[0] + "New.JPG";
btnNovo.setIcon(new javax.swing.ImageIcon(Caminho));
}
Lembrando que está é uma classe interna a classe CadCli.
PS. Troquei o nome do vetor de Inicio para Imagens pois condiz mais com o objetivo.
erro:
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:621: <identifier> expected
btnNovo.setIcon(new javax.swing.ImageIcon(Caminho));
Valeu.
tu ta chamando o método setIcon() direto dentro da Classe Inicio sem atribuir pra nada, coloque esse código dentro de outro método… o construtor da classe talvez…
Mudei para:
public class CadCli extends javax.swing.JInternalFrame {
/** Creates new form CadCli */
public CadCli() {
initComponents();
btnNovo.setIcon(new javax.swing.ImageIcon(Caminho));
}
Agora dá o erro:
Compiling 1 source file to D:\JavaProject\LPublic\build\classes
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:618: cannot find symbol
symbol : class IniSiscom
location: class br.eti.excon.Forms.CadCli
private class Inicio implements IniSiscom{
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:17: cannot find symbol
symbol : variable Caminho
location: class br.eti.excon.Forms.CadCli
btnNovo.setIcon(new javax.swing.ImageIcon(Caminho));
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:619: cannot find symbol
symbol : variable IniSiscom
location: class br.eti.excon.Forms.CadCli.Inicio
String[] Imagens = IniSiscom.Inicio;
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:620: cannot find symbol
symbol : variable IniSiscom
location: class br.eti.excon.Forms.CadCli.Inicio
String Caminho = IniSiscom.Inicio[0] + “New.JPG”;
Valeu.
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:618: cannot find symbol
symbol : class IniSiscom
location: class br.eti.excon.Forms.CadCli
private class Inicio implements IniSiscom{
[color=“red”]tua interface IniSiscom não ta no caminho do classpath.[/color]
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:17: cannot find symbol
symbol : variable Caminho
location: class br.eti.excon.Forms.CadCli
btnNovo.setIcon(new javax.swing.ImageIcon(Caminho));
[color=“red”]como ele nao achou o IniSiscom pra inicializar a String Caminho, ele nao criou a String Caminho[/color]
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:619: cannot find symbol
symbol : variable IniSiscom
location: class br.eti.excon.Forms.CadCli.Inicio
String[] Imagens = IniSiscom.Inicio;
[color=“red”]tua interface IniSiscom não ta no caminho do classpath.[/color]
D:\JavaProject\LPublic\src\br\eti\excon\Forms\CadCli.java:620: cannot find symbol
symbol : variable IniSiscom
location: class br.eti.excon.Forms.CadCli.Inicio
String Caminho = IniSiscom.Inicio[0] + “New.JPG”;
[color=“red”]tua interface IniSiscom não ta no caminho do classpath.[/color]
Sim tem razão havia me esquecido de acrescentar o import do pacote onde está a interface só que resolvi fazer uma mudança ao invés de implementar a interface em CadCli, eu implementei na classe principal que é Siscom que por sua vez chama a classe CadCli. A pergunta é como fazer o acesso ao vetor Imagens que pertence a interface de dentro de CadCli pois se o mesmo está sendo implementado em Siscom.
Valeu.
não entendi nada, coloque código pra simplificar.
OK. Como eu achei que estva confuso, resolvi fazer uma mudança. Veja
Agora tenho:
package siscom.br.eti.excon.Classes;
public class Config {
public String[] Imagens = {
"D:\JavaProject\Siscom\Icones\"
};
public Config() {
}
public String getImagens(){
return Imagens[0];
}
}
package siscom.br.eti.excon.Interfaces;
public interface IniSiscom {
public String getImagens();
}
package br.eti.excon.Forms;
public class CadCli extends javax.swing.JInternalFrame {
public CadCli() {
initComponents();
btnNovo.setIcon(new javax.swing.ImageIcon(Caminho));
}
}
package siscom.br.eti.excon.Forms;
import br.eti.excon.Forms.*;
import siscom.br.eti.excon.Interfaces.IniSiscom;
public class Siscom extends javax.swing.JFrame {
public Siscom() {
initComponents();
}
public class Inicio implements IniSiscom{
public String getImagens(){
return nomePessoa;
}
}
A questão é a seguinte: Eu quero que a interface passe para a classe Siscom o caminho que está no vetor Imagens da classe Config e depois este endereço passado pela interface para Siscom, seja passado para CadCli.
Valeu.
td bem… mas, cara… não pensou em uma maneira mais simples de pegar essas strings com os caminhos das imagens? ja pensou em um singleton acessando um arquivo .properties da sua app? :roll:
Bom. O problema é que estou começando agora e não sei como fazer isso. Isso é do java ou alguma propriedade de configuração. Se puder me ajudar.
Valeu.
bem, o Portal Java ta aqui pra te ajudar… hehehe, vejamos, o seu problema é definir em um local específico as configurações relevantes ao seu sistema, como caminhos de diretórios… Estou certo?