2015-04-30 9 views
0

Я пытаюсь найти массив для отмеченных флажков. Затем мне нужно взять отмеченные флажки, которые выбраны, и поместить их в строку, чтобы показать пользователю, что они выбрали (возможно, во всплывающем окне «Диалог»). Я не знаю, какой синтаксис использовать для этого или метода для этого после много проб и ошибок, которые я пришел сюда.Как я могу поместить каждый элемент этого массива в строку?

Флажки:

JCheckBox s1 = new JCheckBox("Mowing",false); 
    JCheckBox s2 = new JCheckBox("Edging",false); 
    JCheckBox s3 = new JCheckBox("Trimming",false); 
    JCheckBox s4 = new JCheckBox("Blowing",false); 
    JCheckBox s5 = new JCheckBox("Mulch",false); 
    JCheckBox s6 = new JCheckBox("Hedges",false); 
    JCheckBox s7 = new JCheckBox("Pruning Trees", false); 
    JCheckBox s8 = new JCheckBox("Landscaping",false); 
    JCheckBox s9 = new JCheckBox("Weeding", false); 
    JCheckBox s10 = new JCheckBox("Leaf Removal", false); 

массива и цикл с, если заявление, чтобы проверить проверяемых коробки

JCheckBox[] boxes = {s1,s2,s3,s4,s5,s6,s7,s8,s9,s10}; 
     int count = 0; 
     int i; 
     //String for checked boxes to be put into 
     String requested = " "; 
     for(i = 0; i < boxes.length; ++i) 
     { 
      if(boxes[i].isSelected()) 
      { 
       requested = boxes[i].getText(); 
       ++count; 
       //Add the checked boxes to a string. This is where I am stuck 
      } 
     } 
+0

[StringBuilder] (https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html) – harshtuna

+0

Итак, я бы создал объект StringBuilder и добавил запрошенную переменную? – JavaFox

ответ

2

Может просто сделать

requested += boxes[i].getText() + " "; 

Или с помощью StringBuilder:

StringBuilder sb = new StringBuilder(); 
for (i = 0; i < boxes.length; ++i) { 
    ... 
    sb.append(boxes[i].getText() + " "); 
    ... 
} 
1

Вы можете просто использовать JOptionPane для своего всплывающего окна. Надеюсь, это поможет вам!

JOptionPane.showMessageDialog(this,"requested ="+ requested); 
1

Это сравнительно легко в Java 8:

String delimiter = " "; 
String s = Arrays.stream(boxes) 
       .filter((b) -> b.isSelected()) // restrict to selected 
       .map((b)->b.getText()) // get text for each element 
       .collect(Collectors.joining(delimiter)); // join the strings 
Смежные вопросы