上QQ阅读APP看书,第一时间看更新
Time for action – showing the results
The default behavior of the application is to show only the results of the last execution. We need to remove all the results that have been previously added to the resultsLayout
component if the user has not checked Keep previous results. To do that, implement your showResults
method:
private void showResults(Collection<String> results) { if(!checkBox.getValue()) { resultsLayout.removeAllComponents(); } else if(resultsLayout.getComponentCount() > 0) { resultsLayout.addComponent(new Label("--")); } for(String result : results) { resultsLayout.addComponent(new Label(result)); } }
What just happened?
If the checkbox is not checked, we can remove all the components in resultsLayout
(not in layout
, we don't want baffled users here):
resultsLayout.removeAllComponents();
If we don't have to remove previous results, we add a separator and iterate over the results to add each one using a label.
Tip
You can remove single components from layouts using the removeComponent
method:
layout.removeComponent(someComponent);
Congratulations! We have finished a useful application. Try implementing your own test sets and learn more about Java performance.