JComponent — 스윙 컴포넌트 기본 클래스

JComponent — 스윙 컴포넌트 기본 클래스

JComponent는 최상위 컨테이너를 제외한 모든 Swing 컴포넌트의 기본 클래스입니다. 플러그형 룩앤필, 키 입력 처리, 툴팁, 접근성, 이중 버퍼링 등을 지원합니다.

출처: Java API Reference

본문

public abstract class JComponent extends Container implements Serializable

JComponent에서 상속받은 컴포넌트를 사용하려면 그 컴포넌트를 루트가 최상위 Swing 컨테이너인 포함(containment) 계층에 놓아야 합니다. JFrame, JDialog, JApplet 같은 최상위 Swing 컨테이너는 다른 Swing 컴포넌트가 자신을 그릴 장소를 제공하는 특수 컴포넌트입니다. JComponent 클래스는 다음을 제공합니다.

  • Swing 구조를 사용하는 표준 및 사용자 정의 컴포넌트의 기본 클래스
  • 프로그래머가 지정하거나 (선택적으로) 사용자가 런타임에 선택할 수 있는 "플러그형 룩앤필"(L&F). 각 컴포넌트의 룩앤필은 ComponentUI에서 파생된 객체인 UI 위임이 제공합니다
  • 포괄적인 키 입력(KeyStroke) 처리
  • 툴팁 지원 — 커서가 컴포넌트에 머물 때 팝업으로 나타나는 짧은 설명
  • 접근성 지원. JComponent는 Accessible 인터페이스의 모든 메서드를 포함하지만 실제로 구현하지는 않습니다. 그 책임은 JComponent를 확장하는 각 개별 클래스에 있습니다
  • 컴포넌트별 프로퍼티 지원. putClientProperty(java.lang.Object, java.lang.Object)와 getClientProperty(java.lang.Object) 메서드로 JComponent에서 파생된 객체에 이름-객체 쌍을 연결할 수 있습니다
  • 이중 버퍼링과 테두리 지원을 포함하는 페인팅 인프라

이 주제들에 대한 자세한 내용은 Swing 패키지 설명과 The Java Tutorial의 "The JComponent Class" 섹션을 참고하세요. JComponent와 하위 클래스는 특정 프로퍼티의 기본값을 문서화합니다. 예를 들어 JTable은 기본 행 높이를 16으로 문서화합니다. ComponentUI가 있는 각 JComponent 하위 클래스는 생성자의 일부로 ComponentUI를 만듭니다. 경고: Swing은 스레드에 안전하지 않습니다. 이 클래스의 직렬화된 객체는 향후 Swing 버전과 호환되지 않을 수 있습니다. 현재 직렬화 지원은 단기 저장이나 같은 버전의 Swing을 실행하는 애플리케이션 간 RMI에 적합합니다. 1.4부터 모든 JavaBean의 장기 저장 지원이 java.beans 패키지에 추가되었으니 XMLEncoder를 참고하세요.

WHEN_FOCUSED

public static final int WHEN_FOCUSED

포커스된 컴포넌트가 키 입력을 받을 때 사용되는 KeyboardAction의 조건을 나타내는 상수입니다.

WHEN_ANCESTOR_OF_FOCUSED_COMPONENT

public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT

포커스된 컴포넌트나 그 조상에게 등록된 KeyboardAction 조건을 나타내는 상수입니다.

WHEN_IN_FOCUSED_WINDOW

public static final int WHEN_IN_FOCUSED_WINDOW

포커스된 컴포넌트가 포함된 창에 등록된 KeyboardAction 조건을 나타내는 상수입니다. 이 조건은 키 입력을 여러 컴포넌트에서 공유할 때 사용합니다.

UNDEFINED_CONDITION

public static final int UNDEFINED_CONDITION

조건이 정의되지 않았음을 나타내는 상수입니다.

TOOL_TIP_TEXT_KEY

public static final String TOOL_TIP_TEXT_KEY

도구 설명 텍스트를 저장하는 클라이언트 프로퍼티의 키입니다.

setOpaque

public void setOpaque(boolean isOpaque)

true이면 컴포넌트가 경계 안의 모든 픽셀을 그립니다. 그렇지 않으면 일부 또는 모든 픽셀을 그리지 않아 아래 픽셀이 비쳐 보입니다. JComponent의 이 프로퍼티 기본값은 false입니다. 그러나 대부분의 표준 JComponent 하위 클래스(JButton, JTree 등)의 기본값은 룩앤필에 따라 다릅니다.

  • 매개변수: isOpaque - 컴포넌트가 불투명해야 하면 true

isOpaque

public boolean isOpaque()

이 컴포넌트가 완전히 불투명한지 여부를 반환합니다. 불투명 컴포넌트는 사각 경계 안의 모든 픽셀을 그립니다.

  • 재정의: Component 클래스의 isOpaque
  • 반환값: 컴포넌트가 완전히 불투명하면 true

setToolTipText

public void setToolTipText(String text)

툴팁에 표시할 텍스트를 등록합니다. 텍스트는 커서가 컴포넌트에 머물 때 표시됩니다.

  • 매개변수: text - 표시할 문자열, null이면 이 컴포넌트의 툴팁이 꺼집니다

getToolTipText

public String getToolTipText()

setToolTipText로 설정된 툴팁 문자열을 반환합니다.

  • 반환값: 툴팁 텍스트

setBorder

public void setBorder(Border border)

이 컴포넌트의 테두리를 설정합니다. null이면 이 컴포넌트의 테두리가 제거됩니다.

  • 매개변수: border - 설정할 Border

getBorder

public Border getBorder()

이 컴포넌트의 테두리를 반환합니다.

  • 반환값: 이 컴포넌트의 Border

setPreferredSize

public void setPreferredSize(Dimension preferredSize)

이 컴포넌트의 선호 크기를 설정합니다.

  • 매개변수: preferredSize - 새 선호 크기

getPreferredSize

public Dimension getPreferredSize()

이 컴포넌트의 선호 크기를 반환합니다.

  • 반환값: 선호 크기

setMinimumSize

public void setMinimumSize(Dimension minimumSize)

이 컴포넌트의 최소 크기를 설정합니다.

  • 매개변수: minimumSize - 새 최소 크기

getMinimumSize

public Dimension getMinimumSize()

이 컴포넌트의 최소 크기를 반환합니다.

  • 반환값: 최소 크기

setMaximumSize

public void setMaximumSize(Dimension maximumSize)

이 컴포넌트의 최대 크기를 설정합니다.

  • 매개변수: maximumSize - 새 최대 크기

getMaximumSize

public Dimension getMaximumSize()

이 컴포넌트의 최대 크기를 반환합니다.

  • 반환값: 최대 크기

putClientProperty

public final void putClientProperty(Object key, Object value)

이 컴포넌트에 임의의 키/값 "클라이언트 프로퍼티"를 추가합니다. value가 null이면 프로퍼티를 제거합니다. 클라이언트 프로퍼티 변경은 PropertyChange 이벤트로 보고됩니다.

  • 매개변수: key - 새 클라이언트 프로퍼티 키
  • 매개변수: value - 새 클라이언트 프로퍼티 값, null이면 프로퍼티를 제거

getClientProperty

public final Object getClientProperty(Object key)

지정된 키의 프로퍼티 값을 반환합니다. putClientProperty로 추가된 프로퍼티만 null이 아닌 값을 반환합니다.

  • 매개변수: key - 조회할 키
  • 반환값: 이 프로퍼티 값 또는 null

setAlignmentX

public void setAlignmentX(float alignmentX)

x 축 정렬 값을 설정합니다.

  • 매개변수: alignmentX - 0.0~1.0 사이의 새 정렬 값

getAlignmentX

public float getAlignmentX()

x 축 정렬 값을 반환합니다.

  • 반환값: x 축 정렬 값

setAlignmentY

public void setAlignmentY(float alignmentY)

y 축 정렬 값을 설정합니다.

  • 매개변수: alignmentY - 0.0~1.0 사이의 새 정렬 값

getAlignmentY

public float getAlignmentY()

y 축 정렬 값을 반환합니다.

  • 반환값: y 축 정렬 값

scrollRectToVisible

public void scrollRectToVisible(Rectangle aRect)

scrollRectToVisible() 메시지를 JComponent의 부모로 전달합니다. JViewport 같은 요청을 처리할 수 있는 컴포넌트는 이 메서드를 재정의합니다.

  • 매개변수: aRect - 보이는 Rectangle

setAutoscrolls

public void setAutoscrolls(boolean autoscrolls)

autoscrolls 프로퍼티를 설정합니다. true이면 마우스가 컴포넌트 경계 밖으로 드래그되고 마우스 이동이 멈췄을 때 합성 마우스 드래그 이벤트가 생성됩니다.

  • 매개변수: autoscrolls - 합성 마우스 드래그 이벤트를 생성하려면 true

getAutoscrolls

public boolean getAutoscrolls()

autoscrolls 프로퍼티를 가져옵니다.

  • 반환값: autoscrolls 프로퍼티 값

setTransferHandler

public void setTransferHandler(TransferHandler newHandler)

TransferHandler를 설정합니다. cut/copy/paste와 드래그 앤 드롭으로 이 컴포넌트 안팎으로 데이터를 전송하는 지원을 제공합니다.

  • 매개변수: newHandler - 새 TransferHandler
  • 버전: 1.4

getTransferHandler

public TransferHandler getTransferHandler()

transferHandler 프로퍼티를 가져옵니다.

  • 반환값: transferHandler 프로퍼티 값
  • 버전: 1.4

revalidate

public void revalidate()

지연된 자동 레이아웃을 지원합니다. invalidate를 호출한 다음 이 컴포넌트의 validateRoot를 검증할 컴포넌트 목록에 추가합니다.

  • 재정의: Component 클래스의 revalidate

isValidateRoot

public boolean isValidateRoot()

true를 반환하면 이 컴포넌트의 하위 항목에 의한 revalidate 호출이 이 루트부터 시작하는 전체 트리가 검증되게 합니다. 기본적으로 false를 반환합니다.

  • 재정의: Container 클래스의 isValidateRoot
  • 반환값: 기본값 false

setDoubleBuffered

public void setDoubleBuffered(boolean aFlag)

이 컴포넌트가 버퍼를 사용해 그릴지 여부를 설정합니다. true이면 이 컴포넌트의 모든 그리기가 화면 밖 페인팅 버퍼에서 이루어집니다.

  • 매개변수: aFlag - 이중 버퍼링으로 설정하려면 true

isDoubleBuffered

public boolean isDoubleBuffered()

이 컴포넌트가 버퍼를 사용해 그려야 하는지 여부를 반환합니다.

  • 재정의: Component 클래스의 isDoubleBuffered
  • 반환값: 이중 버퍼링되면 true

getRootPane

public JRootPane getRootPane()

이 컴포넌트의 JRootPane 조상을 반환합니다.

  • 반환값: 이 컴포넌트를 담는 JRootPane, 없으면 null

getTopLevelAncestor

public Container getTopLevelAncestor()

이 컴포넌트의 최상위 조상(담고 있는 Window나 Applet)을 반환하거나, 어떤 컨테이너에도 추가되지 않았으면 null을 반환합니다.

  • 반환값: 이 컴포넌트가 속한 최상위 Container, 없으면 null

getX

public int getX()

컴포넌트 원점의 현재 x 좌표를 반환합니다.

  • 재정의: Component 클래스의 getX
  • 반환값: 원점의 x 좌표

getY

public int getY()

컴포넌트 원점의 현재 y 좌표를 반환합니다.

  • 재정의: Component 클래스의 getY
  • 반환값: 원점의 y 좌표

getWidth

public int getWidth()

이 컴포넌트의 현재 너비를 반환합니다.

  • 재정의: Component 클래스의 getWidth
  • 반환값: 현재 너비

getHeight

public int getHeight()

이 컴포넌트의 현재 높이를 반환합니다.

  • 재정의: Component 클래스의 getHeight
  • 반환값: 현재 높이

computeVisibleRect

public void computeVisibleRect(Rectangle visibleRect)

컴포넌트의 "보이는 사각형" — 이 컴포넌트와 모든 조상의 보이는 사각형 교집합을 반환합니다. 결과는 visibleRect에 저장됩니다.

  • 매개변수: visibleRect - 이 메서드의 반환값으로 사용되는 사각형

getVisibleRect

public Rectangle getVisibleRect()

컴포넌트의 "보이는 사각형"을 반환합니다.

  • 반환값: 보이는 사각형

더 알아보기