Swing文件选择器的制作

开发 后端
本文介绍Swing文件选择器的使用,Java API上讲的太少了,就一个如何使Swing文件选择器显示出来都困扰我很久,不知道大家刚接触时是否有同感。

1)不管屏幕大小,始终把界面显示到屏幕固定比例的位置

2)Swing文件选择器的使用,Java API上讲的太少了,就一个如何使Swing文件选择器显示出来都困扰我很久,不知道大家刚接触时是否有同感。

3)事件处理怎么判断是哪个控件触发了事件。

4)选项卡的使用

5)滚动条的加入

6)鼠标左右键的区分

(5)和(6)的问题本程序中不包含。以后补上。

程序涉及内容包含选项卡布局,Swing文件选择器及一些控件,还包含最简单的事件处理。抛砖引玉,希望对刚学swing及事件驱动的人有所帮助。

  1. importjava.io.*;  
  2. importjava.awt.*;  
  3. importjavax.swing.*;  
  4. importjava.awt.event.*;  
  5. publicclassYFileChooserimplementsActionListener{  
  6. JFrameframe=newJFrame("文件选择器实例");  
  7. JTabbedPanetabPane=newJTabbedPane();//选项卡布局  
  8. Containercon=newContainer();//布局1  
  9. Containercon1=newContainer();//布局2  
  10. JLabellabel1=newJLabel("选择目录");  
  11. JLabellabel2=newJLabel("选择文件");  
  12. JTextFieldtext1=newJTextField();  
  13. JTextFieldtext2=newJTextField();  
  14. JButtonbutton1=newJButton("...");  
  15. JButtonbutton2=newJButton("...");  
  16. JFileChooserjfc=newJFileChooser();//文件选择器  
  17. YFileChooser(){  
  18. jfc.setCurrentDirectory(newFile("d:\\"));
    //文件选择器的初始目录定为d盘  
  19. //下面两行是取得屏幕的高度和宽度  
  20. doublelx=Toolkit.getDefaultToolkit().getScreenSize().getWidth();  
  21. doublely=Toolkit.getDefaultToolkit().getScreenSize().getHeight();  
  22. frame.setLocation(newPoint((int)(lx/2)-150,(int)(ly/2)-150));
    //设定窗口出现位置  
  23. frame.setSize(300,150);//设定窗口大小  
  24. frame.setContentPane(tabPane);//设置布局  
  25. //下面设定标签等的出现位置和高宽  
  26. label1.setBounds(10,10,70,20);  
  27. label2.setBounds(10,30,100,20);  
  28. text1.setBounds(80,10,120,20);  
  29. text2.setBounds(80,30,120,20);  
  30. button1.setBounds(210,10,50,20);  
  31. button2.setBounds(210,30,50,20);  
  32.  
  33. button1.addActionListener(this);//添加事件处理  
  34. button2.addActionListener(this);//添加事件处理  
  35. con.add(label1);  
  36. con.add(label2);  
  37. con.add(text1);  
  38. con.add(text2);  
  39. con.add(button1);  
  40. con.add(button2);  
  41. con.add(jfc);  
  42. tabPane.add("目录/文件选择",con);//添加布局1  
  43. tabPane.add("暂无内容",con1);//添加布局2  
  44. frame.setVisible(true);//窗口可见  
  45. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //使能关闭窗口,结束程序  
  46. }  
  47. publicvoidactionPerformed(ActionEvente){//事件处理  
  48. if(e.getSource().equals(button1)){//判断触发方法的按钮是哪个  
  49. jfc.setFileSelectionMode(1);//设定只能选择到文件夹  
  50. intstate=jfc.showOpenDialog(null);
    //此句是打开文件选择器界面的触发语句  
  51. if(state==1){  
  52. return;//撤销则返回  
  53. }  
  54. else{  
  55. Filef=jfc.getSelectedFile();//f为选择到的目录  
  56. text1.setText(f.getAbsolutePath());  
  57. }  
  58. }  
  59. if(e.getSource().equals(button2)){  
  60. jfc.setFileSelectionMode(0);//设定只能选择到文件  
  61. intstate=jfc.showOpenDialog(null);
    //此句是打开文件选择器界面的触发语句  
  62. if(state==1){  
  63. return;//撤销则返回  
  64. }  
  65. else{  
  66. Filef=jfc.getSelectedFile();//f为选择到的文件  
  67. text2.setText(f.getAbsolutePath());  
  68. }  
  69. }  
  70. }  
  71. publicstaticvoidmain(String[]args){  
  72. newYFileChooser();  
  73. }  

【编辑推荐】

  1. SwingUtilities提供两个方法
  2. 浅谈Swing中的渲染器接口
  3. Swing组件中的渲染器Renderer
  4. 浅析Swing线程中的LookupEvent
  5. Swing任务在Swing线程中执行
责任编辑:佚名 来源: 电子工业出版社
相关推荐

2012-04-16 14:32:31

iOS选择器代码

2013-03-11 10:30:56

CSSWeb

2017-03-20 14:46:07

Android日期时间选择器

2011-11-28 13:42:55

Sencha Touc组件选择器

2012-12-27 14:08:39

Android开发颜色选择器

2010-09-03 09:30:29

CSS选择器

2023-01-30 08:42:33

CSS选择器性能

2010-09-07 11:14:32

CSS属性选择器CSS

2022-05-10 07:49:40

CSS选择器

2023-03-16 10:20:55

CSS选择器

2012-06-12 09:43:11

jQuery

2020-10-25 08:57:56

CSS前端浏览器

2010-07-20 10:11:32

jQuery选择器Sizzle

2010-08-26 12:47:15

CSSclass

2010-12-27 16:01:45

jQuery选择器

2010-09-06 08:52:00

CSS选择器

2022-04-14 09:01:19

CSS父选择器CSS类

2016-10-25 14:49:49

javascriptmaterial-uidatepicker

2011-07-22 17:52:46

iPhone 时间 控件

2011-10-24 10:30:20

CSS
点赞
收藏

51CTO技术栈公众号