preciso criar um JTabbedPane e dentro desse JTabbedPane tem um painel especializado criado por mim, porem eu preciso criar uma nova instancia desse painel especializado toda vez que uma nova aba é criada
como os objetos tem o mesmo nome toda vez que são estanciado eu nao consigo trabalhar com eles, porque se eu criar 2 abas e processar alguma coisa na primeira as alterações somente aparecerão na segunda
mas como atribuir isso na hora de instanciar meu JpTabela ??
Gustavo_Sperandio
Foi como eu falei, eu ainda não estou entendendo bem sua situação, tem como você posta ou explicar melhor o momento que faz a chamada do método acima e que acontece esse problema?
rafaelviny
public void adicionaAba(String titulo) {
JpTabela jpTabela = new JpTabela();
//jpPainelTabulado é um JTabbedPane
jpPainelTabulado.add(titulo, jpTabela);
}
public void mousePressed(MouseEvent e) {
if (e.getSource() == tabela) {
String nomeContato = String.valueOf(tabela.getValueAt(tabela.getSelectedRow(), 0));
if (validaTab(nomeContato) == false) {
adicionaAba(nomeContato);
}
}
pense no msn, quando vc clicar em um contato abre uma janela
é isso que to tentando fazer, funciona, mas como estancio apenas 1 jpTabela eu perco a referencia dele ao abrir mais de uma aba e quando insiro algum dado as informaçoes vão para a tabela na ultima aba…
tinha que ser objetos diferentes minha jpTabela, porem nao tem como pois nao sei quantas abas o usuário vai abrir
Compilo agora? hahahahaha
R
redr4gon
acho que a ideia deles é vc criar uma variavel dentro do seu painel que seria seu ID e usar esse ID para pegar o painel e trabalhar com ele entende
eu iria sugerir trabalhar com o HashCode do seu painel mas dae complicaria algo facil... faz do jeito q eles falaram q fica Ok...
publicvoidadicionaAba(Stringtitulo){JpTabelajpTabela=newJpTabela();jpTabela.setID(titulo);jpPainelTabulado.add(titulo,jpTabela);}// retorna sua tabela pra vc trabalhar com elapublicJpTabelagetMinhaTabela(Stringtitulo){// enquanto houver abas no seu tabbed panelfor(inti=0,i<jpPainelTabulado.getTabCount();i++){// se a aba na posicao i tem o titulo que vc passou no parametro, é sua tabela// supondo que vc ta usando o metodo fora do tabbed panel, criaria um get simples pra pegar o painel q vc jogou neleif(jpPainelTabulado.getTabComponentAt(i).getSuaTabela().getID().equals(titulo)){returnjpPainelTabulado.getTabComponentAt(i).getSuaTabela();}}returnnull;// ou uma tabela principal pra nao retornar null}
se quiser trocar o titulo por um id randomico é valido tb..
nem testei isso dae então corrige os erros q tiverem ae =p
rafaelviny
valeu galera, vou ver isso amanha.
agora tem que trabalhar na migração de progress para java ^:P
rafaelviny
jpTabela.setID(titulo);
é isso que preciso, porem o setID é um metodo do JPANEL?
aqui nao tem ele não
R
redr4gon
vc tem q criar seu proprio id e seu set e get neh…