Java получает Компоненты JPanel

Лучший способ с JAVA 8 для английского алфавитного сорта

Внедрение класса

public class NewspaperClass implements Comparable<NewspaperClass>{
   public String name;

   @Override
   public int compareTo(NewspaperClass another) {
      return name.compareTo(another.name);
   }
}

Сортировка

  Collections.sort(Your List);

Если вы хотите сортировать алфавит, который содержит неанглийские символы, которые вы можете использовать в Locale ... Ниже кода используется турецкая сортировка символов ...

Внедрение класса

public class NewspaperClass implements Comparator<NewspaperClass> {
   public String name;
   public Boolean isUserNewspaper=false;
   private Collator trCollator = Collator.getInstance(new Locale("tr_TR"));



   @Override
   public int compare(NewspaperClass lhs, NewspaperClass rhs) {
      trCollator.setStrength(Collator.PRIMARY);
      return trCollator.compare(lhs.name,rhs.name);
   }
}

Сортировка

Collections.sort(your array list,new NewspaperClass());
14
задан jjnguy 16 December 2008 в 03:42
поделиться

2 ответа

Хорошо примите во внимание, что они не добирались там ими сам (я думаю чтение некоторые вопросы о динамичном создании этих панелей во времени выполнения)

В ответах, отправленных там, кто-то сказал, что Вы должны сохраненная ссылка на те текстовые поля в массиве. Это точно, в чем Вы нуждаетесь здесь:

List<JTextField> list = new ArrayLists<JTextField>();

// your code...
for (int i=0; i<maxPoints; i++) { 
    JTextField textField = new JTextField();
    points.add(textField);
    list.add( textField ); // keep a reference to those fields.
}

//Позже

for( JTextField f : list ) { 
   System.out.println( f.getText() ) ;
}

не Было настолько легко?

Просто не забывают сохранять эти виды артефактов (список) максимально частный. Они для Вашего управления только, я не думаю, что они принадлежат интерфейсу.

Скажем, Вы хотите получить массив текстов, вместо

 public List<JTextField> getFields();

необходимо рассмотреть:

 public List<String> getTexts(); // get them from the textfields ... 
11
ответ дан 1 December 2019 в 08:53
поделиться

Каждый JPanel в Java является также контейнером AWT. Таким образом необходимо смочь использовать getComponents, чтобы получить массив содержавших компонентов в панели, выполнить итерации по ним, проверить их типы (Чтобы удостовериться, что Вы не получили другие средства управления), и сделайте то, в чем Вы нуждаетесь с ними.

Однако это - обычно плохой дизайн. Если Вы знаете, что необходимо будет получить доступ к определенным компонентам, лучше поддержать массив тех текстовых полей и раздать его, даже при том, что они визуально содержатся в контейнере.

, Если это - текущая задача или могло бы быть сделано от нескольких точек, может даже иметь смысл иметь специальный класс, представляющий панель с текстовыми полями, которые затем обеспечат через ее интерфейсные средства доступа к этим полям.

10
ответ дан 1 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

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