java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
commons-logging.jar 라이브러리를 추가해주면 된다.
http://commons.apache.org/downloads/download_logging.cgi
다운받아서 추가해주자..
JTextField 클래스를 이용하면 간단하게 텍스트 입력 필드를 화면에 뿌려줄 수 있다. 그런데 JTextField 자체에는 입력 글자수를 제한하는 메써드가 존재하지 않는다. 즉, 10자 까지만 입력하게 하고 싶어도 기본 API로는 구현이 불가능하다. 입력 할 글자수를 제한하려면 다음과 같이 PlainDocument 클래스를 상속받은 클래스를 정의하여 구현할 수 있다.
public class JTextFieldLimit extends PlainDocument
{
private int limit; // 제한할 길이
public JTextFieldLimit(int limit) // 생성자 : 제한할 길이를 인자로 받음
{
super();
this.limit = limit;
}
// 텍스트 필드를 채우는 메써드 : 오버라이드
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException
{
if (str == null)
return;
if (getLength() + str.length() <= limit)
super.insertString(offset, str, attr);
}
}
사용법은 다음과 같다.
textfield.setDocument(new JTextFieldLimit(10));
JFileChooser는 사용자로 하여금 읽어들일 파일이나 저장할 파일을 선택하도록 도와주는 선택창이다. JFileChooser는 아래의 그림처럼 FileSystemView, FileView, FIleFileter 그리고 Accessory등과 같은 복합적인 구조로 되어 있다.(아래의 그림에서는 Accessory는 보이지 않음)
파일을 선택하기 위해서 사용되는 대표적인 메소드는 showOpenDialog(), 와 showSaveDialog()를 사용한다.
창이 열리고 "열기"버튼이나 "저장"버튼을 클릭하게되면 APPROVE_OPTION이 반환되고, 취소 버튼을 클릭하게 되면 CANCEL_OPTION 이 반환된다.
선택한 파일에 대한 정보는 getSelectedFile()메소드를 사용하므로 알 수 있다.
[주요생성자]
JFileChooser() | 사용자의 홈 디렉토리를 가리키는 창을 만든다. |
JFileChooser(File dir) JFileChooser(String dir) |
주어진 dir을 가리키는 창을 만든다. |
[ 기본 설정 관련 주요메소드]
void setCurrentDirectory(File dir) | 현재 사용 디렉토리를 지정한다. |
void setDialogTitle(String title) | 창의 제목을 정한다. |
void setApproveButtonText(String txt) | 열기 또는 저장 버튼의 텍스를 지정한다. |
[대화창 관련 주요 메소드]
int showOpenDialog(Component parent) | 열기용 창을 만든다. |
int showSaveDialog(Component parent) | 저장용 창을 만든다. |
이때 반환값 int는 JFileChooser.APPROVE_OPTION 또는 JFileChooser.CANCEL_OPTION 값을 반환한다.
[파일 선택관련 주요 메소드]
void setFIleSelectionMode(int mode) |
파일 선택 모드를 정한다.
|
void setMultiSelectionEnabled(boolean b) | 파일을 다중 선택하고자 할 때 사용한다. |
void setSelectedFIle(File file) |
주어진 파일을 선택 상태로 창을 생성한다. |
File getSelectedFile() FIle[] getSelectedFiles() |
선택된 파일을 가져온다. |
[컨트롤 관련 주요 메소드]
void addChoosableFileFilter(FileFilter filter) | 파일 필터를 추가한다. |
void setFileFilter(FileFilter filter) | 파일 필터를 지정한다. |
void setAccessory(JComponent accessory) | 액세서리를 지정한다. |
void setFileSystemView(FileSystemView fs) | FIleSystemView를 지정한다. |
void setFileView(FileView fv) | FileView를 지정한다. |
[사용예]
JDK 6.0
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif"); //description,......확장자
chooser.setFileFilter(filter); //필터 셋팅
int returnVal = chooser.showOpenDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile(). getName());
}
JDK 6.0 이전버전
읽기창 만들기
저장창 만들기
파일 필터 만들기
먼저 아래와 같은 소스를 만들어 컴파일 한다.
필터가 필요한 부분에서 아래 소스의 5,6행 처럼 원하는 필터를 지정하여 창을 열면 된다.