经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
列表选择模式:单选、按shift、按shift或ctrl
来源:cnblogs  作者:51人去楼空  时间:2018/10/30 9:04:24  对本文有异议

2018-10-29 21:23:16 开始写

 


 


 

  1. 1 import java.awt.BorderLayout;
  2. 2 import java.awt.EventQueue;
  3. 3 import javax.swing.JFrame;
  4. 4 import javax.swing.JPanel;
  5. 5 import javax.swing.border.EmptyBorder;
  6. 6 import javax.swing.UIManager;
  7. 7 import java.awt.GridLayout;
  8. 8 import javax.swing.JScrollPane;
  9. 9 import javax.swing.JList;
  10. 10 import java.awt.event.WindowAdapter;
  11. 11 import java.awt.event.WindowEvent;
  12. 12 import javax.swing.ListSelectionModel;
  13. 13 import javax.swing.JLabel;
  14. 14 import javax.swing.SwingConstants;
  15. 15 import java.awt.Font;
  16. 16 import javax.swing.JFrame;
  17. 17
  18. 18 public class JListSelectModelTest extends JFrame {
  19. 19 private JPanel contentPane;
  20. 20 private JList list1;
  21. 21 private JList list2;
  22. 22 private JList list3;
  23. 23 private JLabel label1;
  24. 24 private JLabel label2;
  25. 25 private JLabel label3;
  26. 26 public static void main(String[] args) {
  27. 27 // TODO Auto-generated method stub
  28. 28 try {
  29. 29 UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
  30. 30 } catch (Throwable e) {
  31. 31 e.printStackTrace();
  32. 32 }
  33. 33 JListSelectModelTest frame = new JListSelectModelTest();
  34. 34 frame.setVisible(true);
  35. 35 }
  36. 36
  37. 37 public JListSelectModelTest() {
  38. 38 setTitle("列表项的选择模式");
  39. 39 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  40. 40 setBounds(100, 100, 550, 300);
  41. 41 contentPane = new JPanel();
  42. 42 contentPane.setLayout(new BorderLayout(0, 0));
  43. 43 setContentPane(contentPane);
  44. 44
  45. 45 JPanel panel = new JPanel();
  46. 46 contentPane.add(panel, BorderLayout.CENTER);
  47. 47 panel.setLayout(new GridLayout(1, 3, 5, 5));
  48. 48
  49. 49 JScrollPane scrollPane1 = new JScrollPane();
  50. 50 panel.add(scrollPane1);
  51. 51
  52. 52 list1 = new JList();
  53. 53 list1.setFont(new Font("微软雅黑", Font.PLAIN, 14));
  54. 54 list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//设置选择模式为单选
  55. 55 scrollPane1.setViewportView(list1);
  56. 56
  57. 57 label1 = new JLabel("单项选择");
  58. 58 label1.setFont(new Font("微软雅黑", Font.PLAIN, 14));
  59. 59 label1.setHorizontalAlignment(SwingConstants.CENTER);//设置标签水平居中
  60. 60 scrollPane1.setColumnHeaderView(label1);//设置滑动面板首个显示
  61. 61
  62. 62 JScrollPane scrollPane2 = new JScrollPane();
  63. 63 panel.add(scrollPane2);
  64. 64
  65. 65 list2 = new JList();
  66. 66 list2.setFont(new Font("微软雅黑", Font.PLAIN, 14));
  67. 67 list2.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);//设置选择模式为单选或shift
  68. 68 scrollPane2.setViewportView(list2);
  69. 69
  70. 70 label2 = new JLabel("连续选择(按shift)");
  71. 71 label2.setHorizontalAlignment(SwingConstants.CENTER);
  72. 72 label2.setFont(new Font("微软雅黑", Font.PLAIN, 14));
  73. 73 scrollPane2.setColumnHeaderView(label2);
  74. 74
  75. 75 JScrollPane scrollPane3 = new JScrollPane();
  76. 76 panel.add(scrollPane3);
  77. 77
  78. 78 list3 = new JList();
  79. 79 list3.setFont(new Font("微软雅黑", Font.PLAIN, 14));
  80. 80 list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);//设置选择模式为单选或shift或ctrl
  81. 81 scrollPane3.setViewportView(list3);
  82. 82
  83. 83 label3 = new JLabel("默认选择(按Ctrl/Shift)");
  84. 84 label3.setHorizontalAlignment(SwingConstants.CENTER);
  85. 85 label3.setFont(new Font("微软雅黑", Font.PLAIN, 14));
  86. 86 scrollPane3.setColumnHeaderView(label3);
  87. 87
  88. 88 String[] listData = new String[12];
  89. 89 for (int i = 0; i < listData.length; i++) {
  90. 90 listData[i] = "余杰" + (i + 1);
  91. 91 }
  92. 92 list1.setListData(listData);//添加列表元素
  93. 93 list2.setListData(listData);
  94. 94 list3.setListData(listData);
  95. 95 }
  96. 96 }

说明

单选:一次选中一个

shift:多个连续

ctrl:选中多个(不用连续)


谢谢、Thank you、Salamat Do(撒拉玛特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、????? (勘三哈咪瘩)、terima Kasih(得力马卡系)、kob-khun(寇布库恩)、dhanyavaad(达尼阿瓦德)、toda(透达)、te?ekkür ederim(特谢库尔埃戴里姆)、Dzie,kuje(以库以而)、Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(欧布哩嘎搭)、dank u(当Q)、Merci(梅呵西)、Gracias(格拉喜亚思)、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc、Takk、Ευχαριστ

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号