一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語(yǔ)言|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java Swing組件JFileChooser用法實(shí)例分析

Java Swing組件JFileChooser用法實(shí)例分析

2021-02-04 11:03pzy4447 JAVA教程

這篇文章主要介紹了Java Swing組件JFileChooser用法,結(jié)合實(shí)例形式分析了java Swing組件JFileChooser文件選擇器的功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了java swing組件jfilechooser用法。分享給大家供大家參考,具體如下:

jfilechooser文件選擇器是swing中經(jīng)常用到的一個(gè)控件。它的使用主要包含以下幾個(gè)參數(shù):

1.當(dāng)前路徑。也就是它第一次打開時(shí)所在的路徑,許多軟件喜歡設(shè)置為桌面。

2.文件過濾器。通過設(shè)置文件過濾器,只有特定類型的文件是可見的,比如文本,音頻,等。

3.選擇模式。包含三種情況:僅文件, 僅目錄, 文件或目錄。

4.是否允許多選。

jfilechooser的參數(shù)當(dāng)然不止以上4種,它還有很多高級(jí)選項(xiàng),比如你可以對(duì)文件的顯示圖標(biāo)進(jìn)行定制等,由于不經(jīng)常用,這里不再介紹。

有2個(gè)地方要注意:

1.文件過濾器建議使用filenameextensionfilter,它是filefilter的子類,以非常方便的方法實(shí)現(xiàn)了過濾器。用法見代碼。

2.getselectedfiles()方法,它只在ismultiselectionenable()方法返回true是有效。也就是說,如果你不允許多選,則只能使用getselectedfile()方法,否則只能得到一個(gè)空的文件列表。

下面通過一個(gè)demo來展示它的基本用法。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
package awtdemo;
import java.io.file;
import javax.swing.jfilechooser;
import javax.swing.joptionpane;
import javax.swing.filechooser.filenameextensionfilter;
import javax.swing.filechooser.filesystemview;
/**
 *
 * @author pzy
 */
@suppresswarnings("serial")
public class jfilechooserframe extends javax.swing.jframe {
  /**
   * creates new form jfilechooserframe
   */
  public jfilechooserframe() {
    initcomponents();
  }
  /**
   * this method is called from within the constructor to initialize the form.
   * warning: do not modify this code. the content of this method is always
   * regenerated by the form editor.
   */
  @suppresswarnings({ "unchecked", "rawtypes" })
  // <editor-fold defaultstate="collapsed" desc="generated code">
  private void initcomponents() {
    filefilterisbg = new javax.swing.buttongroup();
    ismultiselectbg = new javax.swing.buttongroup();
    jpanel1 = new javax.swing.jpanel();
    text_rb = new javax.swing.jradiobutton();
    video_rb = new javax.swing.jradiobutton();
    audio_rb = new javax.swing.jradiobutton();
    all_rb = new javax.swing.jradiobutton();
    jpanel2 = new javax.swing.jpanel();
    jcombobox1 = new javax.swing.jcombobox();
    multiselect_rb = new javax.swing.jradiobutton();
    singleselect_rb = new javax.swing.jradiobutton();
    jpanel3 = new javax.swing.jpanel();
    jbutton1 = new javax.swing.jbutton();
    setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close);
    setlocationbyplatform(true);
    jpanel1.setborder(javax.swing.borderfactory.createtitledborder("文件類型"));
    filefilterisbg.add(text_rb);
    text_rb.settext("文本");
    filefilterisbg.add(video_rb);
    video_rb.settext("視頻");
    filefilterisbg.add(audio_rb);
    audio_rb.settext("音頻");
    filefilterisbg.add(all_rb);
    all_rb.setselected(true);
    all_rb.settext("所有");
    javax.swing.grouplayout jpanel1layout = new javax.swing.grouplayout(jpanel1);
    jpanel1.setlayout(jpanel1layout);
    jpanel1layout.sethorizontalgroup(
      jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(javax.swing.grouplayout.alignment.trailing, jpanel1layout.createsequentialgroup()
        .addcontainergap(javax.swing.grouplayout.default_size, short.max_value)
        .addcomponent(text_rb)
        .addgap(29, 29, 29)
        .addcomponent(video_rb)
        .addgap(35, 35, 35)
        .addcomponent(audio_rb)
        .addgap(39, 39, 39)
        .addcomponent(all_rb)
        .addgap(32, 32, 32))
    );
    jpanel1layout.setverticalgroup(
      jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(jpanel1layout.createsequentialgroup()
        .addcontainergap()
        .addgroup(jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline)
          .addcomponent(video_rb)
          .addcomponent(text_rb)
          .addcomponent(audio_rb)
          .addcomponent(all_rb))
        .addcontainergap(javax.swing.grouplayout.default_size, short.max_value))
    );
    jpanel2.setborder(javax.swing.borderfactory.createtitledborder("選擇模式"));
    jcombobox1.setmodel(new javax.swing.defaultcomboboxmodel(new string[] { "僅文件", "僅目錄", "文件或目錄" }));
    jcombobox1.addactionlistener(new java.awt.event.actionlistener() {
      public void actionperformed(java.awt.event.actionevent evt) {
        jcombobox1actionperformed(evt);
      }
    });
    ismultiselectbg.add(multiselect_rb);
    multiselect_rb.settext("可多選");
    ismultiselectbg.add(singleselect_rb);
    singleselect_rb.setselected(true);
    singleselect_rb.settext("不可多選");
    javax.swing.grouplayout jpanel2layout = new javax.swing.grouplayout(jpanel2);
    jpanel2.setlayout(jpanel2layout);
    jpanel2layout.sethorizontalgroup(
      jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(jpanel2layout.createsequentialgroup()
        .addcontainergap()
        .addcomponent(jcombobox1, javax.swing.grouplayout.preferred_size, 144, javax.swing.grouplayout.preferred_size)
        .addgap(18, 18, 18)
        .addcomponent(multiselect_rb, javax.swing.grouplayout.preferred_size, 82, javax.swing.grouplayout.preferred_size)
        .addgap(18, 18, 18)
        .addcomponent(singleselect_rb, javax.swing.grouplayout.preferred_size, 82, javax.swing.grouplayout.preferred_size)
        .addcontainergap(14, short.max_value))
    );
    jpanel2layout.setverticalgroup(
      jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(jpanel2layout.createsequentialgroup()
        .addcontainergap()
        .addgroup(jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline)
          .addcomponent(jcombobox1, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)
          .addcomponent(multiselect_rb)
          .addcomponent(singleselect_rb))
        .addcontainergap(16, short.max_value))
    );
    jbutton1.settext("開始");
    jbutton1.addactionlistener(new java.awt.event.actionlistener() {
      public void actionperformed(java.awt.event.actionevent evt) {
        jbutton1actionperformed(evt);
      }
    });
    javax.swing.grouplayout jpanel3layout = new javax.swing.grouplayout(jpanel3);
    jpanel3.setlayout(jpanel3layout);
    jpanel3layout.sethorizontalgroup(
      jpanel3layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(jpanel3layout.createsequentialgroup()
        .addgap(117, 117, 117)
        .addcomponent(jbutton1, javax.swing.grouplayout.preferred_size, 139, javax.swing.grouplayout.preferred_size)
        .addcontainergap(javax.swing.grouplayout.default_size, short.max_value))
    );
    jpanel3layout.setverticalgroup(
      jpanel3layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(jpanel3layout.createsequentialgroup()
        .addgap(26, 26, 26)
        .addcomponent(jbutton1, javax.swing.grouplayout.preferred_size, 32, javax.swing.grouplayout.preferred_size)
        .addcontainergap(19, short.max_value))
    );
    javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane());
    getcontentpane().setlayout(layout);
    layout.sethorizontalgroup(
      layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(layout.createsequentialgroup()
        .addcontainergap()
        .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
          .addcomponent(jpanel1, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value)
          .addcomponent(jpanel2, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value)
          .addgroup(layout.createsequentialgroup()
            .addcomponent(jpanel3, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value)
            .addgap(84, 84, 84)))
        .addcontainergap())
    );
    layout.setverticalgroup(
      layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)
      .addgroup(layout.createsequentialgroup()
        .addgap(8, 8, 8)
        .addcomponent(jpanel1, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)
        .addgap(18, 18, 18)
        .addcomponent(jpanel2, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)
        .addgap(18, 18, 18)
        .addcomponent(jpanel3, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)
        .addcontainergap(javax.swing.grouplayout.default_size, short.max_value))
    );
    pack();
  }// </editor-fold>
  private void jcombobox1actionperformed(java.awt.event.actionevent evt) {
    // todo add your handling code here:
    string itemstring = jcombobox1.getselecteditem().tostring();
    if ("僅文件".equals(itemstring)) {
      fileselectionmode = jfilechooser.files_only;
    } else if ("僅目錄".equals(itemstring)) {
      fileselectionmode = jfilechooser.directories_only;
    } else if ("文件或目錄".equals(itemstring)) {
      fileselectionmode = jfilechooser.files_and_directories;
    }
  }
  private void jbutton1actionperformed(java.awt.event.actionevent evt) {
    // todo add your handling code here:
    filechooser = new jfilechooser();
    //初始化當(dāng)前路徑
    filesystemview fsv = filesystemview.getfilesystemview();
    file homefile =fsv.gethomedirectory();  //這便是讀取桌面路徑的方法了
    filechooser.setcurrentdirectory(homefile);
    //初始化文件過濾器
    if (text_rb.isselected()) {
      filter = new filenameextensionfilter("文本文件", "log", "txt");
      filechooser.setfilefilter(filter);
    }
    if (video_rb.isselected()) {
      filter = new filenameextensionfilter("視頻文件", "mp4", "mkv");
      filechooser.setfilefilter(filter);
    }
    if (audio_rb.isselected()) {
      filter = new filenameextensionfilter("音頻文件", "mp3", "wma");
      filechooser.setfilefilter(filter);
    }
    //初始化選擇模式
    filechooser.setfileselectionmode(fileselectionmode);
    //是否允許多選
    if (multiselect_rb.isselected()) {
      filechooser.setmultiselectionenabled(true);
    }
    else if(singleselect_rb.isselected()) {
      filechooser.setmultiselectionenabled(false);
    }
    //打開文件選擇器
    int i = filechooser.showdialog(this, "選擇");
    if(i == jfilechooser.approve_option){
      stringbuilder sb;
      if(filechooser.ismultiselectionenabled()){
      sb = new stringbuilder("您選擇了以下文件:");
      file [] files = filechooser.getselectedfiles();
      for (file file : files) {
        sb.append("\n");
        sb.append(file.getname());
      }
      }
      else{
        file file = filechooser.getselectedfile();
        sb = new stringbuilder("您選擇的文件是:");
         sb.append("\n");
        sb.append(file.getname());
      }
      joptionpane.showmessagedialog(this, sb);
    }
  }
  /**
   * @param args the command line arguments
   */
  public static void main(string args[]) {
    /* set the nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" look and feel setting code (optional) ">
    /* if nimbus (introduced in java se 6) is not available, stay with the default look and feel.
     * for details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
     */
    try {
      for (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) {
        if ("nimbus".equals(info.getname())) {
          javax.swing.uimanager.setlookandfeel(info.getclassname());
          break;
        }
      }
    } catch (classnotfoundexception ex) {
      java.util.logging.logger.getlogger(jfilechooserframe.class.getname()).log(java.util.logging.level.severe, null, ex);
    } catch (instantiationexception ex) {
      java.util.logging.logger.getlogger(jfilechooserframe.class.getname()).log(java.util.logging.level.severe, null, ex);
    } catch (illegalaccessexception ex) {
      java.util.logging.logger.getlogger(jfilechooserframe.class.getname()).log(java.util.logging.level.severe, null, ex);
    } catch (javax.swing.unsupportedlookandfeelexception ex) {
      java.util.logging.logger.getlogger(jfilechooserframe.class.getname()).log(java.util.logging.level.severe, null, ex);
    }
    //</editor-fold>
    /* create and display the form */
    java.awt.eventqueue.invokelater(new runnable() {
      public void run() {
        new jfilechooserframe().setvisible(true);
      }
    });
  }
  private jfilechooser filechooser;
  private filenameextensionfilter filter;
  private int fileselectionmode = jfilechooser.files_only;
  // variables declaration - do not modify
  private javax.swing.jradiobutton all_rb;
  private javax.swing.jradiobutton audio_rb;
  private javax.swing.buttongroup filefilterisbg;
  private javax.swing.buttongroup ismultiselectbg;
  private javax.swing.jbutton jbutton1;
  @suppresswarnings("rawtypes")
 private javax.swing.jcombobox jcombobox1;
  private javax.swing.jpanel jpanel1;
  private javax.swing.jpanel jpanel2;
  private javax.swing.jpanel jpanel3;
  private javax.swing.jradiobutton multiselect_rb;
  private javax.swing.jradiobutton singleselect_rb;
  private javax.swing.jradiobutton text_rb;
  private javax.swing.jradiobutton video_rb;
  // end of variables declaration
}

運(yùn)行效果如下:

Java Swing組件JFileChooser用法實(shí)例分析

Java Swing組件JFileChooser用法實(shí)例分析

Java Swing組件JFileChooser用法實(shí)例分析

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

原文鏈接:http://www.cnblogs.com/pzy4447/p/6095452.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 手机能看的黄色网站 | 1314酒色 | 无码AV免费精品一区二区三区 | 色婷婷综合缴情综六月 | aaa一级特黄 | 国产在线成人精品 | 亚洲精品91大神在线观看 | 国产成人精品午夜视频' | 婷色| 国产成人精品午夜在线播放 | 日本视频免费在线 | 日韩手机在线视频 | 国产一成人精品福利网站 | 男人女人日皮视频 | 日本中文字幕在线视频 | 国产成人黄网在线免 | 亚洲欧美成人综合在线 | 337p大尺度啪啪人体午夜2020 | 无码爽死成人777在线观看网站 | 羞羞一区二区三区四区片 | 91久久偷偷做嫩草影院免费 | 亚洲AV无码一区二区三区乱子伦 | 亚洲日本视频在线 | 国产成+人+综合+亚洲欧美丁香花 | 国产成人精品一区二区 | 极品主播的慰在线播放 | 欧美草逼网站 | 免费视频精品一区二区三区 | 嫩草影院精品视频在线观看 | 免费观看韩剧网站在线观看 | 我年轻漂亮的继坶2中字在线播放 | 啪啪免费网址 | 欧美另类videos另类粗暴 | 青青青青青国产免费手机看视频 | 国产一区二区三区欧美 | 国产精品国语自产拍在线观看 | 99久久国产综合精品麻豆 | 五月婷婷丁香色 | 亚洲精品国产成人中文 | 国产免费资源高清小视频在线观看 | 黑人异族日本人hd |