组合框条目渲染 : 下拉单选框 « Swing « Java 教程

En
Java 教程
1. 语言基础
2. 数据类型
3. 操作符
4. 流程控制
5. 类定义
6. 开发相关
7. 反射
8. 正则表达式
9. 集合
10. 线
11. 文件
12. 泛型
13. 本土化
14. Swing
15. Swing事件
16. 二维图形
17. SWT
18. SWT 二维图形
19. 网络
20. 数据库
21. Hibernate
22. JPA
23. JSP
24. JSTL
25. Servlet
26. Web服务SOA
27. EJB3
28. Spring
29. PDF
30. 电子邮件
31. 基于J2ME
32. J2EE应用
33. XML
34. 设计模式
35. 日志
36. 安全
37. Apache工具
38. 蚂蚁编译
39. JUnit单元测试
Java
Java 教程 » Swing » 下拉单选框 
14. 12. 14. 组合框条目渲染
组合框条目渲染
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;

import javax.swing.DefaultListCellRenderer;
import javax.swing.Icon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;

class ComplexCellRenderer implements ListCellRenderer {
  protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();

  public Component getListCellRendererComponent(JList list, Object value, int index,
      boolean isSelected, boolean cellHasFocus) {
    Font theFont = null;
    Color theForeground = null;
    Icon theIcon = null;
    String theText = null;

    JLabel renderer = (JLabeldefaultRenderer.getListCellRendererComponent(list, value, index,
        isSelected, cellHasFocus);

    if (value instanceof Object[]) {
      Object values[] (Object[]) value;
      theFont = (Fontvalues[0];
      theForeground = (Colorvalues[1];
      theIcon = (Iconvalues[2];
      theText = (Stringvalues[3];
    else {
      theFont = list.getFont();
      theForeground = list.getForeground();
      theText = "";
    }
    if (!isSelected) {
      renderer.setForeground(theForeground);
    }
    if (theIcon != null) {
      renderer.setIcon(theIcon);
    }
    renderer.setText(theText);
    renderer.setFont(theFont);
    return renderer;
  }
}

public class ComplexRenderingSample {
  public static void main(String args[]) {
    Object elements[][] {
        new Font("Helvetica", Font.PLAIN, 20), Color.RED, new MyIcon()"A" },
        new Font("TimesRoman", Font.BOLD, 14), Color.BLUE, new MyIcon()"A" },
        new Font("Courier", Font.ITALIC, 18), Color.GREEN, new MyIcon()"A" },
        new Font("Helvetica", Font.BOLD | Font.ITALIC, 12), Color.GRAY, new MyIcon()"A" },
        new Font("TimesRoman", Font.PLAIN, 32), Color.PINK, new MyIcon()"A" },
        new Font("Courier", Font.BOLD, 16), Color.YELLOW, new MyIcon()"A" },
        new Font("Helvetica", Font.ITALIC, 8), Color.DARK_GRAY, new MyIcon()"A" } };

    JFrame frame = new JFrame("Complex Renderer");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    ListCellRenderer renderer = new ComplexCellRenderer();
    JComboBox comboBox = new JComboBox(elements);
    comboBox.setRenderer(renderer);
    frame.add(comboBox, BorderLayout.NORTH);
    
    frame.setSize(300200);
    frame.setVisible(true);
  }
}

class MyIcon implements Icon {

  public MyIcon() {
  }

  public int getIconHeight() {
    return 20;
  }

  public int getIconWidth() {
    return 20;
  }

  public void paintIcon(Component c, Graphics g, int x, int y) {
    g.setColor(Color.RED);
    g.drawRect(002525);
  }
}
14. 12. 下拉单选框
14. 12. 1. 创建JComboBox组件
14. 12. 2. 新增项目到JComboBox新增项目到JComboBox
14. 12. 3. 获取被选定项目JComboBox获取被选定项目JComboBox
14. 12. 4. Getting and Setting the Selected Item in a JComboBox Component
14. 12. 5. 编辑JComboBox
14. 12. 6. 如果ComboBox可修改,新的值可以是任何值
14. 12. 7. JComboBox与ItemListenerJComboBox与ItemListener
14. 12. 8. 两JComboBoxes共享的数据模型两JComboBoxes共享的数据模型
14. 12. 9. 共享数据模型JComboBox和JList共享数据模型JComboBox和JList
14. 12. 10. 编辑JComboBox元素编辑JComboBox元素
14. 12. 11. 听键盘事件KeySelectionManager
14. 12. 12. 颜色组合框编辑器颜色组合框编辑器
14. 12. 13. 设置组合编辑和ComboBox设置组合编辑和ComboBox
14. 12. 14. 组合框条目渲染组合框条目渲染
14. 12. 15. 自定义JComboBox弹出按钮自定义JComboBox弹出按钮
14. 12. 16. JComboBox使用自定义模型JComboBox使用自定义模型
14. 12. 17. 获取JComboBox模型并将其设置为JList
14. 12. 18. 添加和删除项目JComboBox组件
14. 12. 19. 新增一个项目到名单的末尾
14. 12. 20. 加入此项目到第一个项目后
14. 12. 21. 获取中的条目JComboBox组件
14. 12. 22. 删除第一个项目
14. 12. 23. 删除最后一个项目
14. 12. 24. 移除所有项目
14. 12. 25. Determining When the Menu of a JComboBox Component Is Displayed
14. 12. 26. JComboBox组件监听事件
14. 12. 27. Listening for Changes to the Selected Item in a JComboBox Component
14. 12. 28. Setting the Number of Visible Items in the Menu of a JComboBox Component
14. 12. 29. Displaying the Menu in a JComboBox Component Using a Keystroke If the Selected Item Is Not Unique
14. 12. 30. 确定JComboBox组件菜单是可见的
14. 12. 31. Displaying the Menu in a JComboBox Component Using a Keystroke
14. 12. 32. Selecting an Item in a JComboBox Component with Multiple Keystrokes
14. 12. 33. 自定义JComboBox外观
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.