演示JList ListModel : 列表 « 图形用户界面 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 图形用户界面 » 列表屏幕截图 
演示JList ListModel
演示JList ListModel

/*
 * Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002.
 * All rights reserved. Software written by Ian F. Darwin and others.
 * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. 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.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
 
 * Java, the Duke mascot, and all variants of Sun's Java "steaming coffee
 * cup" logo are trademarks of Sun Microsystems. Sun's, and James Gosling's,
 * pioneering role in inventing and promulgating (and standardizing) the Java 
 * language and environment is gratefully acknowledged.
 
 * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for
 * inventing predecessor languages C and C++ is also gratefully acknowledged.
 */

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.util.ArrayList;

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.ListModel;
import javax.swing.event.ListDataListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

/**
 * Demonstrate Swing "JList" ListModel
 
 @author Ian Darwin
 @author Tweaked by Jonathan Fuerth of SQLPower.ca
 */
public class JListModelDemo extends JListDemo {

  JListModelDemo(String s) {
    super(s);
    ListModel lm = new StaticListModel();
    list.setModel(lm);
    list.setCellRenderer(new MyCellRenderer());
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  public static void main(String[] s) {
    JListModelDemo l = new JListModelDemo("ListModel");
    l.pack();
    l.setVisible(true);
  }

  class MyCellRenderer extends JLabel implements ListCellRenderer {

    /*
     * Get the Renderer for a given List Cell. This is the only method
     * defined by ListCellRenderer. If the object is already a component,
     * keep it, else toString it and wrap it in a JLabel. Reconfigure the
     * Component each time we're called to accord for whether it's selected
     * or not.
     */
    public Component getListCellRendererComponent(JList list, Object value, // value
                                        // to
                                        // display
        int index, // cell index
        boolean isSelected, // is the cell selected
        boolean cellHasFocus// the list and the cell have the focus
    {
      Component c = null;
      if (value == null) {
        c = new JLabel("(null)");
      else if (value instanceof Component) {
        c = (Componentvalue;
      else {
        c = new JLabel(value.toString());
      }

      if (isSelected) {
        c.setBackground(list.getSelectionBackground());
        c.setForeground(list.getSelectionForeground());
      else {
        c.setBackground(list.getBackground());
        c.setForeground(list.getForeground());
      }

      if (instanceof JComponent) {
        ((JComponentc).setOpaque(true);
      }

      return c;
    }
  }

  class StaticListModel implements ListModel {
    private final Object[] data = "Hello"new Object(),
        new java.util.Date()new JLabel("Hello world!"), this, };

    public Object getElementAt(int index) {
      return data[index];
    }

    public int getSize() {
      return data.length;
    }

    public void addListDataListener(ListDataListener ldl) {
      // since the list never changes, we don't need this :-)
    }

    public void removeListDataListener(ListDataListener ldl) {
      // since the list never changes, we don't need this :-)
    }
  }
}

class JListDemo extends JFrame {
  JList list = null;

  JListDemo(String s) {
    super(s);
    Container cp = getContentPane();
    cp.setLayout(new FlowLayout());
    ArrayList data = new ArrayList();
    data.add("Hi");
    data.add("Hello");
    data.add("Goodbye");
    data.add("Adieu");
    data.add("Adios");
    list = new JList(data.toArray());
    list.addListSelectionListener(new ListSelectionListener() {
      public void valueChanged(ListSelectionEvent evt) {
        if (evt.getValueIsAdjusting())
          return;
        System.out.println("Selected from " + evt.getFirstIndex()
            " to " + evt.getLastIndex());
      }
    });
    cp.add(list, BorderLayout.CENTER);
  }

  public static void main(String[] s) {
    JListDemo l = new JListDemo("Greetings");
    l.pack();
    l.setVisible(true);
  }
}

           
       
Related examples in the same category
1. 使用JList组件以显示自定义的项目ListCellRenderer使用JList组件以显示自定义的项目ListCellRenderer
2. JList与DefaultListModelJList与DefaultListModel
3. 从一系列的字符串值创建JList从一系列的字符串值创建JList
4. 图形列表选择事件监听图形列表选择事件监听
5. Test of the DragGesture classes and JList to see if we can recognize a simple drag gestureTest of the DragGesture classes and JList to see if we can recognize a simple drag gesture
6. 双JList之间的按钮双JList之间的按钮
7. 继承ListCellRenderer来显示图标继承ListCellRenderer来显示图标
8. 添加JList到滚动窗格添加JList到滚动窗格
9. JList和ComboBoxJList和ComboBox
10. JList选择改变事件监听JList选择改变事件监听
11. 三列表相同的数据数组三列表相同的数据数组
12. List with and without ScrollPane List with and without ScrollPane
13. 设置固定单元格高度和宽度设置固定单元格高度和宽度
14. 名单:共享数据名单:共享数据
15. 列表框数据事件演示列表框数据事件演示
16. 如何使用列表框控件如何使用列表框控件
17. 创建名单,从名单模型创建名单,从名单模型
18. 如何创建列单元格渲染如何创建列单元格渲染
19. 列表选择事件列表选择事件
20. 构建列表框控件构建列表框控件
21. 标签列表渲染标签列表渲染
22. 列表框文本输入列表框文本输入
23. JList和JComboBox之间共享模型JList和JComboBox之间共享模型
24. 演示ScrollingList演示ScrollingList
25. 弱ListModel
26. ListModel演示ListModel演示
27. ModifyModelSample : ListModel演示ModifyModelSample : ListModel演示
28. ArrayList的ListModel ,易于使用
29. 拖放: JList和列表框拖放: JList和列表框
30. 列表框选择事件
31. JList is a component that displays a list of objects: It allows the user to select one or more items.JList is a component that displays a list of objects: It allows the user to select one or more items.
32. JTextArea是一个多行文本区域,显示纯文本。
33. JTextPane组件
34. JButton模型:管理按钮状态
35. 预设按钮模型
36. JList: ListModel and ListSelectionModel. The ListModel handles data. ListSelectionModel works with the GUI.JList: ListModel and ListSelectionModel. The ListModel handles data. ListSelectionModel works with the GUI.
37. 单选择JList。
38. JList组件项目选择改变事件
39. JList组件项目选择改变监听
40. 检测双重和三重点击中JList组件项目
41. 安排JList组件的项目
42. changes the layout orientation so that its items are displayed top-to-bottom and left-to-right.
43. Make the number of visible rows dependent on the height of the list, the visibleRowCount property must be set to 0:
44. 设置JList组件的选择模式
45. 选定的项目必须是在一个连续的范围
46. 多范围的选定项目
47. 在JList组件设置选定的项目
48. import javax.swing.JList;
49. 选择所有项目
50. 清除所有选择
51. 选择第一个项目
52. 添加另一个选择-第三个项目
53. 取消第一个项目
54. 选择一个项目
55. 在JList组件使用所选项目
56. 获得最后选定项目的索引
57. 确定是否第三个项目被选中
58. 确定是否有任何被选定的项目
59. 返回所选项目的对象
60. JList组件添加和删除项目
61. 附加项目
62. 插入一个项目到开始
63. 创建一个列表,允许添加和删除
64. 使用Set方法取代一个项目
65. 用来删除项目的方法
66. 获取JList组件中的控件
67. 用于找到一个项目的方法
68. 这些方法可以用来寻找可见的范围
69. 获取第一个可见项目的索引
70. 获取最后一个可见项目的索引
71. JList组件项目的工具提示
72. 设置JList组件项目的尺寸
73. 同样本设置列表框项目
74. 创建一个JList组件
75. The items can be arbitrary objects. The toString() method of the objects is displayed in the list component.
76. 在一个按钮组确定所选JRadioButton
77. 旋转一个微调事件
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.