문제

나는 항상 Java에서 사용자 정의 구성 요소를 만들거나 기존 구성 요소를 사용자 정의하고 싶었지만 내 검색으로 인해 유용한 구성 요소가 없습니다. 그래서 나는 stackoverflow 커뮤니티에 물어보기로 결정했습니다.

일반적으로 Java GUI 구성 요소 사용자 정의에 대한 정보는 어디에서 찾을 수 있습니까?

그리고 커스터마이징을 의미 할 때, 나는 색상, 글꼴 등에 대해 말하는 것이 아닙니다. 진짜 그들을 사용자 정의하십시오. 다음은 두 가지 모형 예제 구성 요소입니다.

Custom Components Mockup

메모
위의 두 가지 사용자 정의 구성 요소를 만드는 방법을 찾기 위해이 질문을 시작했습니다. 그러나 스윙 구성 요소 해킹에 대한 일반적인 질문이 없다는 것을 깨달았습니다. 그래서 나는 리소스 목록을 갖는 것이 더 좋을 것이라고 생각했습니다.

모형의 두 구성 요소가 어떻게 작동하는지 궁금한 경우 다음과 같습니다.

각 방향에 대해 2 개의 스크롤 바가있는 맞춤형 jscrollpane. 각 스크롤 바는 다르게 행동 할 수 있습니다. 예를 들어, 바깥 쪽은 정상적으로 스크롤하고 내부는보기를 더 많이 움직입니다. 피카 사-같은 방법. 실제로 Google Groups의 작업 (!) 답변을 얻었습니다. 여기, 그러나 그것은 단지 코드였습니다.

두 번째는 팝업 목록이 확장되면 끝에 jcomponent가있는 사용자 정의 jcombobox입니다. 아이콘이있는 간단한 Jlabel에서 목록을 어떤 방식으로 조작하는 JButton에 이르기까지 모든 것이 될 수 있습니다.

그러나이 질문은 이러한 특정 구성 요소에 관한 것이 아닙니다. 그것은 관하여 자원 (웹 사이트, 서적, 기사 등) 찾기 방법을 배우기 위해.

도움이 되었습니까?

해결책

이 기사, 사용자 정의 스윙 구성 요소를 작성하는 방법 정말 도움이되어야합니다. 개별 단계와 연속 범위가 모두있는 Windows 슬라이더 컨트롤을 복제하는 것을 다룹니다.

다른 팁

JDK는 오픈 소스입니다. 스윙 구성 요소를 작성하는 방법을 이해하려면 스윙 구성 요소 소스보다 더 나은 곳이 없습니다. 일반적으로 사용자 정의 구성 요소를 만들 때 다음 중 하나 이상에 관심이 있습니다. {상호 작용 시맨틱, 시각적 표현, 구성 구조}}

가장 간단한 경우부터 시작하십시오.

수동 구성 요소 : JLabel
대화식 구성 요소 : JButton

JLabel 베어 본 확장을 보여줄 것입니다 JComponent 구성 요소의 사용자 정의 도면; 이 경우 '텍스트'문자열 값을 표현으로 그립니다.

JButton 구성 요소를 그리는 것 외에도 사용자 상호 작용을위한 베어 본 확장을 보여줍니다.

더러운 부자 고객 이 주제에 대해 훌륭하고 읽을 수있는 책입니다. 그것은 완전히 새로운 구성 요소를 만드는 것보다 스윙 구성 요소의 모양과 느낌을 향상시키는 것입니다. 그러나 그것은 스윙의 내장에 들어가서 많은 실제 예를 제공합니다.

이것은 꽤 열린 질문입니다. 짧은 간단한 대답은 서브 클래스입니다. JComponent 또는 그 중 하나가 후손이며 필요한 기능을 추가하십시오. 분명히, 당신이하고 싶은 일에 따라, 이것을하고자하는 것은 어려움에 따라 다를 수 있습니다. 우선 초보자는 Sun 's를 읽는 것이 좋습니다 스윙 구성 요소 사용에 대한 튜토리얼 사용 방법에 대한 예가 있습니다 스크롤 PANES 그리고 팝업 메뉴. 이를 읽고 실험 한 후에는 사람들이 고려 된 답변을 제공하기 쉬운보다 구체적인 질문이있을 수 있습니다.

모형의 두 구성 요소가 구현하고자하는 전부라면 기능을 원하는 방법에 대한 더 나은 아이디어를 제공하면 더 나은 답변을 얻을 수 있습니다.

읽다 스윙 해킹 : 킬러 guis 건축을위한 팁 및 도구 (Marinacci, Adamson). IMHO는 일반적으로 스윙으로 효과적으로 작업하기위한 필수 책입니다.

개인적으로 나는 위의 답변이 너무 일반적이거나 모호하다고 생각합니다. 또한, 누군가가 내가 한 것처럼 필연적 으로이 실에 부딪 힐 때, 나는 내가 찾은 것을 제공 할 수도 있습니다.

도움이 되었기를 바랍니다...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top