1. package org.jr.swing;
  2. /**
  3. * Copyright: Copyright (c) 2002-2004
  4. * Company: JavaResearch(http://www.javaresearch.org)
  5. * 最后更新日期:2003年3月13日
  6. * @author Cherami
  7. */
  8. import java.awt.*;
  9. import javax.swing.*;
  10. import javax.swing.border.*;
  11. /**
  12. * 选项面板。
  13. * 简化了选项面板的创建,一般情况下只需要设置面板的标题和元素的布局即可。
  14. * 使用GridLayout布局管理器,推荐的用法是:
  15. * panel=new OptionPanel(title, rows, 1);
  16. * 即创建一个带有标题,选项内容垂直排列的面板。
  17. * @since 0.5
  18. */
  19. public class OptionPanel
  20. extends JPanel {
  21. public static final Color defaultShadowColor = new Color(148, 145, 140);
  22. public static final Color defaultHighlightColor = Color.white;
  23. protected Color shadowColor;
  24. protected Color highlightColor;
  25. protected String title;
  26. protected int rows;
  27. protected int columns;
  28. /**
  29. * 根据指定的参数创建一个OptionPanel。
  30. * 边框颜色使用缺省的颜色。
  31. * @param title 标题文字
  32. * @param rows 行数
  33. * @param columns 列数
  34. * @since 0.5
  35. */
  36. public OptionPanel(String title, int rows, int columns) {
  37. this(title, rows, columns, defaultHighlightColor, defaultShadowColor);
  38. }
  39. /**
  40. * 根据指定的参数创建一个OptionPanel。
  41. * @param title 标题文字
  42. * @param rows 行数
  43. * @param columns 列数
  44. * @param highlightColor 高亮的颜色
  45. * @param shadowColor 阴暗的颜色
  46. * @since 0.5
  47. */
  48. public OptionPanel(String title, int rows, int columns, Color highlightColor,
  49. Color shadowColor) {
  50. this.title = title;
  51. this.rows = rows;
  52. this.columns = columns;
  53. this.highlightColor = highlightColor;
  54. this.shadowColor = shadowColor;
  55. setLayout(new GridLayout(rows, columns));
  56. setBorder(new TitledBorder(BorderFactory.
  57. createEtchedBorder(highlightColor,
  58. shadowColor),
  59. title));
  60. }
  61. }