# 컴포넌트 공통 사항 ## 스타일 * `getBorder()` / `setBorder(Border)` * `getForeground()` / `setForeground(Color)` * `getBackground()` / `setBackground(Color)` * `isOpaque()` / `setOpague(boolean)` * `getFont()` / `setFont(Font)` * `getCursor()` / `setCursor(Cursor)` ```java myComponent.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); myComponent.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); myComponent.setBackground(Color.PINK); ``` ## 상태 * `isEnabled()` / `setEnabled(boolean)` * `isVisible()` / `setVisible(boolean)` * `isShowing()` * `getName()` / `setName(String)` : 컴포넌트에 관리용 이름을 붙일 때 사용할 수 있다. * `setTooltipText()` * `getTransferHandler()` / `setTransferHandlerTransferHandler()` : 드래그&드롭에서 사용한다. * `setComponentPopupMenu(JPopupMenu)` ## 리스너 * `addXXXListener()` / `removeXXXListener()` * HierarchyListener * MouseListener * MouseMotionListener * KeyListener * ComponentListener ## 컴포넌트 * `add(Component)` / `add(Component,int)` / `add(Component,Object)` * `remove(int)` / `remove(Component)` / `removeAll()` * `contains(int,int)` / `contains(Point)` : 주어진 좌표가 컴포넌트 내부인가? * `getComponentAt(int,int)` / `getComponentAt(Point)` * `getComponentZOrder(Component)` / `setComponentZOrder(Component,int)` * `getComponentZOrder(int)` / `getComponentZOrder()` * `getRootPane()` / `getTopLevelAnscestor()` / `getParent()` * `getComponentCount()` * `getComponent(int)` / `getComponents()` ## 레이아웃 * `getLayout()` / `setLayout(LayoutManager)` * `getPreferredSize()` / `setPreferredSize(Dimension)` * `getMaximumSize()` / `setMaximumSize(Dimension)` * `getMinimumSize()` / `setMinimumSize(Dimension)` * `getAlignmentX()` / `setAlignmentX(float)` * `getAlignmentY()` / `setAlignmentY(float)` * `applyComponentOrientation(ComponentOrientation)` / `setComponentOrientation(ComponentOrientation)` ## 위치와 크기 * `getX()` / `getY()` * `getWidth()` / `getHeight()` * `getSize()` / `setSize(Dimension)` * `getBounds()` / `setBounds(Rectangle)` * `getLocation()` / `setLocation(Point)` * `getLocationOnScreen()` * `getInsets()` / `setInsets(Inset)` ## 패인팅 * `repaint()` / `repaint(int,int,int,int)` / `repaint(Rectangle)` * `revalidate()` * `paintComponent(Graphics)` : 이 메서드를 오버라이드해서 커스텀 컴포넌트를 만든다. ## Focus * `isFocusOwner()` * `isRequestFocusEnabled()` / `setRequestFocusEnabled(boolean)` * `isFocusable()` / `setFocusable(boolean)` * `requestFocusInWindow()` * `getFocusTraversalKeys(int)` / `setFocusTraversalKeys(int,Set)` / `areFocusTraversalKeysSet(int)` ### LayoutFocusTraversalPolicy * `getComponentAfter(Container,Component)` * `getComponentBefore(Container,Component)` * `getFirstComponent(Container)` / `getInitialComponent(Container)` / `getLastComponent(Container)` * `container.getFocusTraversalPolicy()` / `container.setFocusTraversalPolicy(FocusTraversalPolicy)` * `container.isFocusCycleRoot()` / `container.setFocusCycleRoot(boolean)` * `container.isFocusTraversalPolicyProvider()` / `container.setFocusTraversalPolicyProvider(boolean)` ## InputMap * `component.getInputMap()` / `component.getInputMap(int)` : JComponent.WHEN_FOCUSED | WHEN_IN_FOCUSED_WINDOW | WHEN_ANCESTOR_OF_FOCUSED_COMPONENT * `put(KeyStroke,Object)` : 키 스트록, 액션명. 키와 이름을 연결시킨다. * `KeyStroke.getKeyStroke(String)` ## ActionMap * `component.getActionMap()` * `put(Object,Action)` : 이름과 액션을 연결시킨다.