как получить информацию об элементе, выбранном из jlist? [Дубликат]

Вы можете следовать рекомендациям в PEP 3101 и использовать подкласс Formatter:

import string

class BlankFormatter(string.Formatter):
    def __init__(self, default=''):
        self.default=default

    def get_value(self, key, args, kwds):
        if isinstance(key, str):
            return kwds.get(key, self.default)
        else:
            return string.Formatter.get_value(key, args, kwds)

kwargs = {"name": "mark", "adj": "mad"}     
fmt=BlankFormatter()
print fmt.format("My name is {name} and I'm really {adj}.", **kwargs)
# My name is mark and I'm really mad.
print fmt.format("My name is {name} and I'm really {adjective}.", **kwargs)
# My name is mark and I'm really .  

Начиная с Python 3.2 вы можете использовать .format_map в качестве альтернативы:

class Default(dict):
    def __missing__(self, key):
        return '{'+key+'}'

kwargs = {"name": "mark"}

print("My name is {name} and I'm really {adjective}.".format_map(Default(kwargs)))

, который печатает:

My name is mark and I'm really {adjective}.

14
задан sharon Hwk 10 December 2012 в 14:16
поделиться

2 ответа

Используйте ListSelectionListener:

JList list = new JList(...);
list.addListSelectionListener(new ListSelectionListener() {
  public void valueChanged(ListSelectionEvent evt) {
    if (!evt.getValueIsAdjusting()) {
      // code here
    }
  }
});
5
ответ дан Blacklight 26 August 2018 в 16:33
поделиться

Почему бы вам не поставить ListSelectionListener на JList и добавить к нему свой код.

Предполагаю, что вы уже знаете, как создавать слушатели на JButtons на основе вашего вопроса, поэтому вам просто нужно настроить его, чтобы создать ListSelectionListener вместо этого, а затем назначить слушателя вашему JList используя jlist.addListSelectionListener(myListener);

Здесь есть хороший учебник здесь , который должен вас запустить или обратитесь к документации

You должен быть нацелен на что-то вроде этого ...

jlist.addListSelectionListener(new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent event) {
        if (!event.getValueIsAdjusting()){
            JList source = (JList)event.getSource();
            String selected = source.getSelectedValue().toString();
        }
    }
});
8
ответ дан wattostudios 26 August 2018 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: