Swing文件選擇器的制作
本文介紹Swing文件選擇器的使用,Java API上講的太少了,就一個如何使Swing文件選擇器顯示出來都困擾我很久,不知道大家剛接觸時是否有同感。
1)不管屏幕大小,始終把界面顯示到屏幕固定比例的位置
2)Swing文件選擇器的使用,Java API上講的太少了,就一個如何使Swing文件選擇器顯示出來都困擾我很久,不知道大家剛接觸時是否有同感。
3)事件處理怎么判斷是哪個控件觸發(fā)了事件。
4)選項卡的使用
5)滾動條的加入
6)鼠標(biāo)左右鍵的區(qū)分
(5)和(6)的問題本程序中不包含。以后補(bǔ)上。
程序涉及內(nèi)容包含選項卡布局,Swing文件選擇器及一些控件,還包含最簡單的事件處理。拋磚引玉,希望對剛學(xué)swing及事件驅(qū)動的人有所幫助。
- importjava.io.*;
- importjava.awt.*;
- importjavax.swing.*;
- importjava.awt.event.*;
- publicclassYFileChooserimplementsActionListener{
- JFrameframe=newJFrame("文件選擇器實例");
- JTabbedPanetabPane=newJTabbedPane();//選項卡布局
- Containercon=newContainer();//布局1
- Containercon1=newContainer();//布局2
- JLabellabel1=newJLabel("選擇目錄");
- JLabellabel2=newJLabel("選擇文件");
- JTextFieldtext1=newJTextField();
- JTextFieldtext2=newJTextField();
- JButtonbutton1=newJButton("...");
- JButtonbutton2=newJButton("...");
- JFileChooserjfc=newJFileChooser();//文件選擇器
- YFileChooser(){
- jfc.setCurrentDirectory(newFile("d:\\"));
//文件選擇器的初始目錄定為d盤- //下面兩行是取得屏幕的高度和寬度
- doublelx=Toolkit.getDefaultToolkit().getScreenSize().getWidth();
- doublely=Toolkit.getDefaultToolkit().getScreenSize().getHeight();
- frame.setLocation(newPoint((int)(lx/2)-150,(int)(ly/2)-150));
//設(shè)定窗口出現(xiàn)位置- frame.setSize(300,150);//設(shè)定窗口大小
- frame.setContentPane(tabPane);//設(shè)置布局
- //下面設(shè)定標(biāo)簽等的出現(xiàn)位置和高寬
- label1.setBounds(10,10,70,20);
- label2.setBounds(10,30,100,20);
- text1.setBounds(80,10,120,20);
- text2.setBounds(80,30,120,20);
- button1.setBounds(210,10,50,20);
- button2.setBounds(210,30,50,20);
- button1.addActionListener(this);//添加事件處理
- button2.addActionListener(this);//添加事件處理
- con.add(label1);
- con.add(label2);
- con.add(text1);
- con.add(text2);
- con.add(button1);
- con.add(button2);
- con.add(jfc);
- tabPane.add("目錄/文件選擇",con);//添加布局1
- tabPane.add("暫無內(nèi)容",con1);//添加布局2
- frame.setVisible(true);//窗口可見
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//使能關(guān)閉窗口,結(jié)束程序- }
- publicvoidactionPerformed(ActionEvente){//事件處理
- if(e.getSource().equals(button1)){//判斷觸發(fā)方法的按鈕是哪個
- jfc.setFileSelectionMode(1);//設(shè)定只能選擇到文件夾
- intstate=jfc.showOpenDialog(null);
//此句是打開文件選擇器界面的觸發(fā)語句- if(state==1){
- return;//撤銷則返回
- }
- else{
- Filef=jfc.getSelectedFile();//f為選擇到的目錄
- text1.setText(f.getAbsolutePath());
- }
- }
- if(e.getSource().equals(button2)){
- jfc.setFileSelectionMode(0);//設(shè)定只能選擇到文件
- intstate=jfc.showOpenDialog(null);
//此句是打開文件選擇器界面的觸發(fā)語句- if(state==1){
- return;//撤銷則返回
- }
- else{
- Filef=jfc.getSelectedFile();//f為選擇到的文件
- text2.setText(f.getAbsolutePath());
- }
- }
- }
- publicstaticvoidmain(String[]args){
- newYFileChooser();
- }
- }
【編輯推薦】
責(zé)任編輯:佚名
來源:
電子工業(yè)出版社