Java開発ノート(一三〇から五)スイングファイルダイアログ

従来のプロンプトダイアログボックスに加えて、ダイアログボックスがあり、それは、ファイルダイアログと呼ばれ、また、非常に一般的です。ファイルダイアログを保存し、ファイルを開く]ダイアログボックスが、彼らはSwingでのJFileChooserの種類を表現するために使用されます。ファイルの選択]ダイアログボックスには2つのサブカテゴリに分かれています。以下は、JFileChooserの説明の一般的に使用される方法であり、
ファイルダイアログのタイトル:setDialogTitle。
setApproveButtonText:OKボタンのテキストを設定します。
setCurrentDirectory:初期ディレクトリのファイルダイアログを設定します。
setMultiSelectionEnabled:選択複数のファイルをサポートするかどうかを設定します。複数の選択肢、虚偽の表現は複数選択をサポートしていない値は真のサポートは、デフォルトでは、複数選択を許可していません。
setFileSelectionMode:セレクトモードの設定ファイル。JFileChooser.FILES_ONLY(ファイルのみが、実際のテストは、ディレクトリを表示するために発見される)、JFileChooser.DIRECTORIES_ONLY(ディレクトリのみを表示)、JFileChooser.FILES_AND_DIRECTORIES(表示ファイルとディレクトリ):3つの選択モードがあります。
setFileFilter:ファイル選択フィルタを設定します。
setDialogType:設定]ダイアログボックスタイプ。これは、値JFileChooser.OPEN_DIALOGファイルを開く]ダイアログボックスの代表である、JFileChooser.SAVE_DIALOGGが、これはファイル保存ダイアログで表します。
showOpenDialog:[開く]ダイアログボックスファイル。戻り値はJFileChooser.APPROVE_OPTIONで表したファイルの選択は、JFileChooser.CANCEL_OPTIONで発現された場合、ダイアログの[OK]ボタンを押し、ダイアログ上のキャンセルボタンを押したかどうかを反映しています。
showSaveDialog:ファイルの保存]ダイアログボックスが表示されます。showOpenDialogして説明したメソッドの戻り値。
getSelectedFile:現在選択されているFileオブジェクトを取得します。
getSelectedFiles:のみ複数選択の場合は、現在のファイルを選択したオブジェクトの配列にアクセスします。
上述の方法のうち、特にsetFileFilterは一見方法FileFilterのタイプの入力パラメータは、それがファイルフィルタ次のjava.ioが、独自のファイルダイアログフィルタをスイングされていないことに留意すべきです。この方法は、現在のファイルがフィルタ条件を満たしているか否かを判定する受け入れ有し、このフィルタは、フィルタIOライブラリと同じ名前と比較される;ことを除いて、ファイルダイアログフィルタのgetDescriptionより法、方法は、表示する文字列を返します補足するファイルの種類に相当し、ファイルの種類]ドロップダウンリストボックスの内部インチ たとえば、txtのタイプは、一般的に総称して画像ファイル、PPTとして知られているいくつかのタイプをPNG形式、テキストファイル、JPG、GIFとして知られ、PPTXファイルの種類はそうでスライドと呼ばれています。コード例を呼び出して、特定のファイルをフィルタする次のとおりです。

		JFileChooserのチュー=新しいJFileChooserの(); //はファイルダイアログを作成
		chooser.setCurrentDirectory(新しいファイル( "E: /"を)); //カレントディレクトリにファイルダイアログ設定
		chooser.setFileFilter(新しいFileFilterのを(){//セットファイルダイアログのファイルフィルタが
			@Override 
			受け入れ(ファイルファイル)パブリックブール{//現在のファイルのみをダイアログに表示、フィルタ条件を満たしているかどうかを決定する条件を満たしています
				条件を満たすように//ディレクトリ、TXTの拡張子条件ファイルは
				file.isDirectoryを返す()|| file.getName()toLowerCaseメソッド()endsWith( "TXT。"); ... 
			} 

			@Override 
			パブリック文字列のgetDescription(){//フィルタの説明を取得する
				リターン「*を。 TXT(テキストファイル)「; 
			} 
		});

どのようにデモファイルダイアログボックスを見てみましょう次に、あなたがリスナーを登録するには、ボタンをクリックしたい、呼び出す方法showOpenDialogファイルダイアログボックスが表示され、ボタンをクリックするとポップアップします。[開く]ダイアログボックスをファイルには、例えば、特定の呼び出し元のコードは次のようになります。

		btnOpenFile.addActionListenerクリックリスナを登録する(新しいのActionListener(){//ボタン
			@Override 
			ます。public void actionPerformedの(のActionEvent E){//イベントをクリックが発生
				開くことがダイアログボックスの準備ができて//タイプ設定ファイルダイアログボックスを、ファイル
				chooser.setDialogType(JFileChooser.OPEN_DIALOGを); 
				//ファイルオープンダイアログ
				int型の結果= chooser.showOpenDialog(フレーム); 
				IF(結果== JFileChooser.APPROVE_OPTION){// OKボタンをクリックし
					、ファイルを取得します//ファイルダイアログボックスで、選択し
					たファイルのファイルchooser.getSelectedFile =(); 
					label.setText( "<HTML>ファイルパスをオープンする準備ができている:" file.getAbsolutePath +()+ "</ HTML>"); 
				}他{/ /しないOKボタン
					label.setText( "キャンセルオープンファイル"); 
				} 
			} 
		})。

 

テストプログラムを実行し、以下に示すように、ボタンのポップオープンファイルダイアログボックスをクリックしてください。


、下位ディレクトリの内部を入力したテキストファイルを見つけて、それをクリックしてファイルダイアログをダブルクリックして、列の「ファイル名」のファイルダイアログボックスがファイルの名前が表示され、それは以下に示すように、それは、ファイル、ダイアログインターフェースを選択したと述べました示しています。

そして、メインインターフェイスに示すように、プログラムに戻るには、「開く」ボタンの下のダイアログボックスをクリックし、メインインタフェース目に見える成功は、単に、選択したファイルのフルパスを知っています。



ダイアログボックスの保存ファイルを開き、ボタンをクリックすると、同じリスナーを登録showSaveDialogメソッドを呼び出すために別のボタンをクリックして、呼び出し元のコードは次のようになります。この時間:

		btnSaveFile.addActionListener(new ActionListener() { // 给按钮注册一个点击监听器
			@Override
			public void actionPerformed(ActionEvent e) { // 发生了单击事件
				// 设置文件对话框的类型,这里的对话框准备保存文件
				chooser.setDialogType(JFileChooser.SAVE_DIALOG);
				// 显示文件保存的对话框
				int result = chooser.showSaveDialog(frame);
				if (result == JFileChooser.APPROVE_OPTION) { // 单击了确定按钮
					// 获取在文件对话框中选择的文件
					File file = chooser.getSelectedFile();
					label.setText("<html>准备保存的文件路径为:" + file.getAbsolutePath() + "</html>");
				} else { // 未单击确定按钮
					label.setText("取消保存文件");
				}
			}
		});

 

运行测试程序,单击按钮弹出的文件保存对话框如下图所示。


与文件打开对话框相比,文件保存对话框的左上角标题由“打开”改为“保存”,下方的“打开”按钮改为“保存”按钮,除了这两个地方有变化,其它都一模一样。在对话框的“文件名”一栏填写待保存的文件名,然后单击“保存”按钮,回到如下图所示的程序主界面,可见主界面成功获知那个待保存文件的完整路径。


文件对话框的内部字体也不能通过setFont方法直接修改,原因很简单,对话框只是一个框架,框架内部又有许多控件,故而需要遍历这些内部控件,再一一设置每个控件的文本字体。详细的对话框字体设置方法定义如下:

	// 设置对话框的内部字体。第一个参数需要传入文件对话框的实例
	private static void setComponentFont(Component component, Font font) {
		component.setFont(font); // 设置当前组件的字体
		if (component instanceof Container) { // 如果该组件是容器
			Container container = (Container) component; // 把该组件强制转为容器
			int count = container.getComponentCount(); // 获取容器内部的组件数量
			for (int i = 0; i < count; i++) { // 遍历该容器的所有组件
				// 给每个组件再设置一遍内部字体
				setComponentFont(container.getComponent(i), font);
			}
		}
	}

 



更多Java技术文章参见《Java开发笔记(序)章节目录

おすすめ

転載: www.cnblogs.com/pinlantu/p/11330913.html