Лучший способ с 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());
Хорошо примите во внимание, что они не добирались там ими сам (я думаю чтение некоторые вопросы о динамичном создании этих панелей во времени выполнения)
В ответах, отправленных там, кто-то сказал, что Вы должны сохраненная ссылка на те текстовые поля в массиве. Это точно, в чем Вы нуждаетесь здесь:
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 ...
Каждый JPanel в Java является также контейнером AWT. Таким образом необходимо смочь использовать getComponents, чтобы получить массив содержавших компонентов в панели, выполнить итерации по ним, проверить их типы (Чтобы удостовериться, что Вы не получили другие средства управления), и сделайте то, в чем Вы нуждаетесь с ними.
Однако это - обычно плохой дизайн. Если Вы знаете, что необходимо будет получить доступ к определенным компонентам, лучше поддержать массив тех текстовых полей и раздать его, даже при том, что они визуально содержатся в контейнере.
, Если это - текущая задача или могло бы быть сделано от нескольких точек, может даже иметь смысл иметь специальный класс, представляющий панель с текстовыми полями, которые затем обеспечат через ее интерфейсные средства доступа к этим полям.