Jlist

17 respostas
speixe

boas malta,
tou com uns pequenos problemas espero que me possam ajudar, eu construo esta lista :

private JList getProfilesList() {

if (jlstProfilesList == null) {

try {

jlstProfilesList = new JList(new DefaultListModel());

jlstProfilesList.setFont(new Font(Dialog, Font.PLAIN, 10));

User users = (User)TmplEJBLocater.getInstance().getEJBRemote(pt.inescporto.siasoft.comun.ejb.session.User);

UserProfiles userProfiles = (UserProfiles)TmplEJBLocater.getInstance().getEJBRemote(pt.inescporto.siasoft.comun.ejb.session.UserProfiles);

userProfiles.setLinkCondition(null, null);

Iterator it = userProfiles.listAll().iterator();

while (it.hasNext()) {

UserProfileDao profile = (UserProfileDao)it.next();

if (profile.userID.getValue().equals(MenuSingleton.getName()) || ((profile.permissions.getValue().intValue() & UserProfileDao.PERM_READ) > 0)) {

//get enterprise for this user profile

UserDao userDao = new UserDao(profile.userID.getValue());

users.findByPrimaryKey(userDao);

userDao = users.getData();
// add node to the list
        ProfileNode pNode = new ProfileNode(userDao.enterprise.getValue(), profile);
        ((DefaultListModel)jlstProfilesList.getModel()).addElement(pNode);
      }
    }
  }
  catch (java.lang.Throwable e) {
e.printStackTrace();
  }
}
return jlstProfilesList;

}

gostava que me podessem ajudar como posso por um valor dos que ele preenche a lista em focus mal abro a lista.

um abraço

17 Respostas

ViniGodoy

Use o método setSelectedIndex(int) para selecionar um item da lista.
Para selecionar o primeiro:

jlstProfilesList.setSelectedIndex(0);
jlstProfilesList.requestFocusInWindow();

É claro que a lista tem que ter algum elemento antes de você poder fazer isso.

speixe

Desde já agradeço pela ajuda foi muito util :slight_smile:
se eu poder gostava de te por mais uma questão,
tipo a lista poe la 3 valores tipo


manel
rui

se eu quizer por a focus o manel mal abre a janela como faço pelo o metodo que me destes

jlstProfilesList.setSelectedIndex(0);
jlstProfilesList.requestFocusInWindow();

um abraço e obrigado por tudo

lina

Bom,
não queria atrapalhar…
mais basta você definir valor dentro do seu “construtor”…

io_lj_font.setSelectedIndex(1);
io_lj_font.requestFocusInWindow();

No caso, passo 1 para pegar o manel, pois começa com 0…

0 = zé
1 = manel
2 = rui

Tchauzin!

speixe

Não atrapalhas nada :slight_smile: eu é que agradeço a tua ajuda, eu já tinha entendido essa parte mas eu guardo noutra lista um desse nomes tas a perceber, por exemplos eu so sei na outra lista que tenho

lista 2
manel

e na lista 1 tenho
ze
manel
rui

e quando vou buscar o valor a lista 2 trago manel e nao a posiçao por isso tinha posto a questao de fazer o focus ao manel na lista 1

obrigado pela ajuda

fabim

speixe:
Não atrapalhas nada :slight_smile: eu é que agradeço a tua ajuda, eu já tinha entendido essa parte mas eu guardo noutra lista um desse nomes tas a perceber, por exemplos eu so sei na outra lista que tenho

lista 2
manel

e na lista 1 tenho
ze
manel
rui

e quando vou buscar o valor a lista 2 trago manel e nao a posiçao por isso tinha posto a questao de fazer o focus ao manel na lista 1

obrigado pela ajuda

String item2 = (String) lista2.getSelectedObject();

int list1Size = lista1.getModel().getSize();

for (int i=0; i < list1Size; i++) {

if (((String)lista1.getElementAt(i)).contains(item2))

lista1.setSelectedItem(i);

}

era isso? oO

speixe

tipo este codigo aqui a frente constroi a lista onde fica

ze
manel
rui

private JList getProfilesList() {

if (jlstProfilesList == null) {

try {

jlstProfilesList = new JList(new DefaultListModel());

jlstProfilesList.setFont(new Font(Dialog, Font.PLAIN, 10));

User users = (User)TmplEJBLocater.getInstance().getEJBRemote(pt.inescporto.siasoft.comun.ejb.session.User);

UserProfiles userProfiles = (UserProfiles)TmplEJBLocater.getInstance().getEJBRemote(pt.inescporto.siasoft.comun.ejb.session.UserProfiles);

userProfiles.setLinkCondition(null, null);

Iterator it = userProfiles.listAll().iterator();

while (it.hasNext()) {

UserProfileDao profile = (UserProfileDao)it.next();

if (profile.userID.getValue().equals(MenuSingleton.getName()) || ((profile.permissions.getValue().intValue() & UserProfileDao.PERM_READ) > 0)) {

//get enterprise for this user profile

UserDao userDao = new UserDao(profile.userID.getValue());

users.findByPrimaryKey(userDao);

userDao = users.getData();
// add node to the list
        
        ProfileNode pNode = new ProfileNode(userDao.enterprise.getValue(), profile);
        ((DefaultListModel)jlstProfilesList.getModel()).addElement(pNode);
      }
    }
  }
  catch (java.lang.Throwable e) {
e.printStackTrace();
  }
}
return jlstProfilesList;

}

e com esta linha de codigo
MenuSingleton.getUserData().getApplicableProfileData().getProfile());
trago da lista 2 o nome manel e nao tou a ver como aplico esse for ali na lista 1 se me poderes dar uma ajuda.

desde ja agradeço a tua disponibilidade :slight_smile:

lina

speixe,
Do you live here in brazil?

I think that you use a translator to sending messages here…

if you want, pls send message in english…

Thank’s baby…

Kisses, kisses for you!

bye!

fabim

lina:
speixe,
Do you live here in brazil?

I think that you use a translator to sending messages here…

if you want, pls send message in english…

Thank’s baby…

Kisses, kisses for you!

bye!

aaaaaaaaahhh agora entendi xD
tava pensando q o cara era gaucho ou algo assim :lol:

Mantu

lina:
speixe,
Do you live here in brazil?

Creio que o colega speixa seja de Portugal. Não é, speixe?
Muitos dos GUJeiros são portugueses.

paulorb.pacheco

Eu já acho que o cara é português… hahahahaha

lina

Eu não sei cara,
mais me parece que ele usou um tradutor mesmo…

não creiu que ele seja de portugal… ta meiu estranho…

Mesmo assim! vamos responder suas perguntas!
eu só não consegui entender ela…

Tipo, você quer que quando clicado no manel na lista2 selecione o manel na lista 1?

Tchauzin!

speixe

AHAHAHA pesso desculpa por não ter respondido de emediato
mas tava na hora de almoço.
Para acabar com as duvidas
Sou português :slight_smile:

Abraço para todos e obrigado por estarem ajudar :slight_smile:

speixe

Agora falando do código eu não me fiz entender muito bem secalhar :slight_smile:
mas vou tentar explicar outra vez.
Este pedaço de código :

private JList getProfilesList() {

if (jlstProfilesList == null) {
  try {
jlstProfilesList = new JList(new DefaultListModel());
    jlstProfilesList.setFont(new Font("Dialog", Font.PLAIN, 10));
    User users = (User)TmplEJBLocater.getInstance().getEJBRemote("pt.inescporto.siasoft.comun.ejb.session.User");
    UserProfiles userProfiles = (UserProfiles)TmplEJBLocater.getInstance().getEJBRemote("pt.inescporto.siasoft.comun.ejb.session.UserProfiles");
    userProfiles.setLinkCondition(null, null);
    Iterator it = userProfiles.listAll().iterator();
    while (it.hasNext()) {
      UserProfileDao profile = (UserProfileDao)it.next();
      if (profile.userID.getValue().equals(MenuSingleton.getName()) || ((profile.permissions.getValue().intValue() & UserProfileDao.PERM_READ) > 0)) {
    //get enterprise for this user profile
        UserDao userDao = new UserDao(profile.userID.getValue());
        users.findByPrimaryKey(userDao);
        userDao = users.getData();

        // add node to the list
        ProfileNode pNode = new ProfileNode(userDao.enterprise.getValue(), profile);
        ((DefaultListModel)jlstProfilesList.getModel()).addElement(pNode);
      }
    }
  }
  catch (java.lang.Throwable e) {
e.printStackTrace();
  }
}
return jlstProfilesList;

}

Constroi a lista 1 onde aparece

Ze
Manel
Rui
////////////////////////////////////

e na lista 2

private JList getProfileSelectedList() {

if (jlstProfileSelected == null) {

try {

jlstProfileSelected = new JList(new DefaultListModel());

jlstProfileSelected.setFont(new Font(Dialog”, Font.PLAIN, 10));

UserProfileDao curProfile = MenuSingleton.getUserData().getApplicableProfileData().getProfile();
if (curProfile != null) {
      
      ProfileNode pNode = new ProfileNode(MenuSingleton.getUserData().getApplicableProfileData().getEnterpriseForUser(), curProfile);
  ((DefaultListModel)jlstProfileSelected.getModel()).addElement(pNode);
}
  }
  catch (java.lang.Throwable e) {
// TODO: Something
  }
}
return jlstProfileSelected;

}

ele guarda o manel

eu fecho a janela e quando volto abrir a janela ele tem de aparecer com o manel em focus neste caso, mas se eu passar o rui para a lista 2 a seguir tem de aparecer o rui e assim socessivamente.

Um abraço e espero que tenho explicado melhor agora :slight_smile:

speixe

Com a ajuda que vocês já me deram eu quando abro a janela já consigo por na lista 1 qualquer um deles em focu, fazendo isto:

jlstProfilesList.setSelectedIndex(0);
jlstProfilesList.requestFocusInWindow();

mas eu nao quero que ele va pelo selectedindex(0) ou seja pela posição, quero sim que ele va pelo nome que existe na lista 2
esta linha de código da-me o nome que ta na lsita 2:

UserProfileDao curProfile = MenuSingleton.getUserData().getApplicableProfileData().getProfile();

só ainda não consigo por o Focus usando o nome da lista 2

Um abraço e desculpem pela confusão por vezes é dificil exprimir aquilo que queremos ao certo

Mantu

Só uma dica, amigo: Coloque o código fonte entre as tags apropriadas, assim:

//seu código fonte aqui

pois assim fica tudo mais legível.
Seja bem vindo ao GUJ! E divirta-se!

marceloandre

E ae pessoal…
Me desculpem me intrometer… mas tenho uma duvida e acho vcs poderiam me ajuda.

apenas queria pegar o número de elementos que tenho na minha JList.

int i = (numeros de linha da JList)

[]'s

Marcelo André

Mantu
int count = minhaJlist.getModel().getSize();
Criado 3 de janeiro de 2007
Ultima resposta 4 de jan. de 2007
Respostas 17
Participantes 7