수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

자바 문자열 필터링 관련 질문있습니다...

벚꽃

2023.04.01

이제 자바 공부 시작한지 막 일주일쯤 되는 1人 입니다 !!

다른게 아니라 그냥 공부하는거보다는 먼가를 만들면서 공부를 하는게 좀더 잼있고 효율적인거 같아서 제가 좋아하는 영화 관련

프로그램을 만들고있습니다. 근데 필터링관련된 자료를 찾다가 소스를 하나 구했는데 이게 숫자로 10자리 밖에 안되더라구요...

제가원하는건 한글과 숫자만 가능한폼 하나 영문과 숫자만 가능한 폼하나.... 이렇게 필요한데....제가 구한소스는 아무리

들여다봐도 이 변수가 머고 머가먼지 모르겠더라구요 ㅜㅜ 고수님들 자세히 주석만 달아주셔두 감사하구요....

한글과 숫자만 입력가능한 소스 와 영문과 숫자만 입력가능한 소스를 올려주심 대단히 감사하겠습니다 (__)

아래는 숫자만 10자리 입력가능한 필터 소스입니다.

아 그리고... 이 소스중에 도대체 어디가 10자리만 입력가능하게 설정된건지 .. 알수있을까요....?

============================================== 소스 =================================================

import javax.swing.text.*;
import java.awt.Toolkit;

public class IntegerDocumentFilter extends DocumentFilter { ///////////// 필터처리 클래스

int currentValue = 0;

public IntegerDocumentFilter() {
}

public void insertString(DocumentFilter.FilterBypass fb,
int offset, String string, AttributeSet attr)
throws BadLocationException {

if (string == null) {
return;
} else {
replace(fb, offset, 0, string, attr);
}
}

public void remove(DocumentFilter.FilterBypass fb,
int offset, int length)
throws BadLocationException {

replace(fb, offset, length, , null);
}

public void replace(DocumentFilter.FilterBypass fb,
int offset, int length, String text, AttributeSet attrs)
throws BadLocationException {

Document doc = fb.getDocument();
int currentLength = doc.getLength();
String currentContent = doc.getText(0, currentLength);
String before = currentContent.substring(0, offset);
String after = currentContent.substring(
length+offset, currentLength);
String newValue = before +
(text == null ? : text) + after;
currentValue = checkInput(newValue, offset);
fb.replace(offset, length, text, attrs);
}

private int checkInput(String proposedValue, int offset)
throws BadLocationException {
int newValue = 0;
if (proposedValue.length() 0) {
try {
newValue = Integer.parseInt(proposedValue);
} catch (NumberFormatException e) {
throw new BadLocationException(
proposedValue, offset);
}
}
return newValue;
}
}==============================================================================================================

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 영동교

    ^^ 죄송은요 열심히 하세요. 저도 아직도 공부중이라~ 더 쉽게 풀이는 못해드렸네요. 자바는 끝이 안나서~

  • 앵겨쪼

    ㅜㅜ 도무지가..... 그냥 키 리스너로 포문 돌리고 이프문 돌려서 ㅜㅜ 했네요 ㅜㅜ 그래도 한글은 무한정 입력이 되버리는 ㅜㅜ 나중에 고수되면 이부분 해봐야겠어요 ㅜㅜ 아직은 너무 어려운듯.. ㅜㅜ
    수다님 신경써주셔서 감사합니다 ㅜㅜ 열심히 말씀해주셨는데... 제가 알아먹질 못하네요 ㅜㅜ
    죄송해여 ㅠㅠ

  • 스릉흔드

    .. 재확인 중인데요 replace 메소드에서

    int currentLength = doc.getLength(); // 여기부분에서 입력된 원본 문서의 길이를 받고
    String currentContent = doc.getText(0, currentLength); // 입력된 문서의 0번째 부터 문서길이까지 문자열로 변환
    String before = currentContent.substring(0, offset); // 만약 길이제한이 있다면 offset

  • 셋삥

    수다님 신경써주셔서 감사합니다 +_+ 근데 수다님이 말씀해주신 .. 호출하는부분.... 하~~ 알려면 알수록 힘들어지네요 ㅜㅜ 호출하는부분에도 없네요 ㅜㅜ

    document textdocone = movie_date.getdocument();
    documentfilter filterone =

    new integerdocumentfilter();

    ((abstractdocument)textdocone).setdocumentfilter(filter

  • 꽃짱구

    ㅜㅜ 수다님 제가 이 소스자체를 이해못해서 그러는데... offset 크기로 자른다는게 무슨뜻인지....ㅜㅜ
    자바는 문자열 필터링이 너무 어려운거 같아요 ㅜㅜ 유니코드 블럭을 검색해서 적용시켜봐도 먹지도 않고 ㅜㅜ 자세히 설명좀 부탁 드려도 될까요?

  • 해련

    replace 메소드에서

    String before = currentContent.substring(0, offset);

    이 부분에서 offset 크기로 자르는거 같네요

번호 제 목 글쓴이 날짜
2701397 세로 100% 푸터부분이 바닥에 안붙어요(세로 100% 되는 소스를 썼거든요) 꽃겨울 2025-07-13
2701369 [긴급]로드해온 swf가 갑자기 사라지는 현상..(익스10) (2) 곰돌이 2025-07-13
2701340 [c++]학교 과제 질문이요...... (3) 기쁨해 2025-07-13
2701311 구글 뉴스검색최적화 작업은 누구의 영역인가요? 많은 조언 부탁드려요! 리나 2025-07-13
2701285 아이폰이나 안드로이드 폰 인터넷으로 볼때 배꽃 2025-07-12
2701230 테마 설정하면 밑에 뜨는 글 삭제 (1) 창의적 2025-07-12
2701177 css적용이 안되요~ (6) 다니엘 2025-07-11
2701151 사이트작업시 inputbox 가 readonly 형태표시 어떻게 하시나요? (1) 찬내 2025-07-11
2701123 간단한 select 질문입니다 (3) 천사의눈물 2025-07-11
2701061 비베질문.. 똘끼 2025-07-10
2701034 메일폼 내 script 삽입가능한 방법 없을까요.. (2) 마음새 2025-07-10
2701008 분명히 버튼을 만들었는데 액션이 안걸립니다. (3) 재찬 2025-07-10
2700923 전체중앙정렬&독타입&쿼크모드 ㅜㅠ (8) 푸른들 2025-07-09
2700893 질문드리겠습니다. 도도한 2025-07-09
2700793 무비클립에 마우스 오버시 랜덤으로 효과음 나기는 어떻게 ;; (1) 바닐라 2025-07-08
2700741 웹전송? (2) 연와인 2025-07-07
2700686 카테고리 호버시 세부카테고리 보이게하는 것, css로만 가능할까요?? (3) 다힘 2025-07-07
2700658 메타태그 질문드립니다..ㅠㅠ;;; 모해 2025-07-07
2700632 외부에서 이미지 파일을 불러와야 합니다. 도와주세요. (4) 에일린 2025-07-06
2700579 (air + as3) smtp 이용해서 첨부파일 포함해서 메일 보내기 물보라 2025-07-06
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com