/* * * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Oracle nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** * List Demo. This demo shows that it is not * always necessary to have an array of objects * as big as the size of the list stored. * * Indeed, in this example, there is no array * kept for the list data, rather it is generated * on the fly as only those elements are needed. * * @author Jeff Dinkins
*/ publicclass ListDemo extends DemoModule {
JList<String> list;
JPanel prefixList;
JPanel suffixList;
Action prefixAction;
Action suffixAction;
GeneratedListModel listModel;
Vector<JCheckBox> checkboxes = new Vector<>();
/** * main method allows us to run as a standalone demo.
*/ publicstaticvoid main(String[] args) {
ListDemo demo = new ListDemo(null);
demo.mainImpl();
}
// Create the list
list = new JList<>();
list.setCellRenderer(new CompanyLogoListCellRenderer());
listModel = new GeneratedListModel(this);
list.setModel(listModel);
// Set the preferred row count. This affects the preferredSize // of the JList when it's in a scrollpane.
list.setVisibleRowCount(22);
// Add list to a scrollpane
JScrollPane scrollPane = new JScrollPane(list);
listPanel.add(scrollPane);
listPanel.add(Box.createRigidArea(VGAP10));
// Add the control panel (holds the prefix/suffix list and prefix/suffix checkboxes)
centerPanel.add(createControlPanel());
public String getElementAt(int index) { if(permuter == null) {
update();
} // morph the index to another int -- this has the benefit of // causing the list to look random. int j = permuter.map(index); int ps = prefix.size(); int ss = suffix.size(); return (String) prefix.elementAt(j%ps) + (String) suffix.elementAt((j/ps)%ss);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.