Swing文件选择器的制作
创始人
2024-04-16 14:30:46
0

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线程中执行

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...