스윙 컴포넌트의 공통 메소드
JComponent에는 모든 스윙 컴포넌트를 상속받는 공통 메소드와 상수들이 작성되어 있다.
컴포넌트의 모양과 관련된 메소드
void setForeground(Color) | 전경색 설정 |
void setBackground(Color) | 배경색 설정 |
void setOpaque(boolean) | 불투명성 설정 |
void setFont(Font) | 폰트 설정 |
Font getFont() | 폰트 리턴 |
컴포넌트의 상태와 관련된 메소드
void setEnabled(boolean) | 컴포넌트 활성화/비활성화 |
void setVisible(boolean) | 컴포넌트 보이기/숨기기 |
boolean isVisible() | 컴포넌트의 보이는 상태 리턴 |
컴포넌트의 위치와 크기에 관련된 메소드
int getWidth() | 폭 리턴 |
int getHeight() | 높이 리턴 |
int getX() | X좌표 리턴 |
int getY() | Y좌표 리턴 |
point getLocationOnScreen() | 스크린 좌표상에서의 컴포넌트 좌표 |
void setLocation(int, int) | 위치 지정 |
void setSize(int, int) | 크기 지정 |
컴포넌트를 위한 메소드
Component add(Component) | 자식 컴포넌트 추가 |
void remove(Component) | 자식 컴포넌트 제거 |
void removeAll() | 모든 자식 컴포넌트 제거 |
Component[] getComponents() | 자식 컴포넌트 배열 리턴 |
Container getParent() | 부모 컨테이너 리턴 |
Container getTopLevelAncestor() | 최상위 부모 컨테이너 리턴 |
많이 사용되는 JComponent의 메소드를 알아보기
배경색, 전경색, 폰트 (스윙 컴포넌트 c의 배경색. 전경색, 폰트)
c.setBackground(Color.YELLOW); | 컴포넌트의 배경색을 노란색으로 설정 |
c.setForeground(Color.MAGENTA); | 컴포넌트 c의 글자색을 마젠타로 설절 |
c.setFont(new Font("Arial", Font.ITALIC, 20)); | 20픽셀 이탤릭 Arial체로 설정 |
위치와 크기( 스윙 컴포넌트 c의 위치와 크기 )
c.setLocation(100, 200); | 컴포넌트 c를 (100, 200) 위치로 이동 |
c.setSize(100, 100); | 컴포넌트 c의 크기를 100 * 100 크리고 설정 |
스윙 컴포넌트 c의 위치와 크기 알아보기
int x = c.getX(); | X좌표 반환 | int w = c.getWidth(); | 가로길이 반환 |
int y = c.getY(); | Y좌표 반환 | int h = c.getHeight(); | 세로길이 반환 |
활성화/비활성화, 보이기/숨기기
c.setEnabled(false) | 컴포넌트 c가 작동하지 않게 함 |
c.setVisible(false) | 컴포넌트 c가 화면에 보이지 않게 함 |
부모 컨테이너 찾기
Container c = c.getParent(); | 컨테이너 c의 부모 컨테이너 알아내기 |
MyFrame frame = (MyFrame)c.getTopLevelAncester(); | c의 최상위 스윙 프레임 알아내기 |
컨테이너 c에서 자식 컴포넌트 child를 삭제
c.remove(child); |
child가 제거된다고 바로 화면에서 사라지지 않는다. 다음 코드가 필요하다.
c.revalidate(); // 컨테이너 c의 재배치 c.repaint(); // 컴포넌트 c의 다시 그리기 |
3개의 버튼을 활용하여 JComponent의 공통 메소드의 사용 사례
첫번째 버튼은 폰트, 배경색, 글자색활용, 두번째 버튼은 활성화/비활성화, 세번째 버튼은 위치를 다루는 코드로 활용
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class JComponentEx extends JFrame { public JComponentEx() { super("JComponent의 공통 메소드 예제"); Container c = getContentPane(); c.setLayout(new FlowLayout());
JButton b1 = new JButton("Text/Background Color"); JButton b2 = new JButton(" 비활성화버튼 "); JButton b3 = new JButton("버튼활성화/비활성화");
b1.setBackground(Color.YELLOW); // 배경색설정 b1.setForeground(Color.BLUE); // 글자색설정 b1.setFont(new Font("Arial", Font.ITALIC, 20)); // Arial, 20픽셀폰트설정 b2.setEnabled(false); // 버튼비활성화 b3.addActionListener(new ActionListener() { int sw=0; public void actionPerformed(ActionEvent e) { JButton b = (JButton)e.getSource(); JComponentEx frame = (JComponentEx)b.getTopLevelAncestor(); frame.setTitle("버튼좌표: "+b.getX() + "," + b.getY()); // 타이틀에버튼좌표출력
if(sw == 0) { b2.setText(" 버튼활성화 "); b2.setEnabled(true); sw = 1; } else { b2.setText(" 버튼비활성화 "); b2.setEnabled(false); sw= 0; } } });
c.add(b1); c.add(b2); c.add(b3); // 컨텐트팬에 버튼 부착
setSize(260,200); setVisible(true); }
public static void main(String[] args) { new JComponentEx(); } } |
실행 결과]
'프로그램언어 > 자바' 카테고리의 다른 글
스윙 컴포넌트의 공통 메소드3 (0) | 2020.11.04 |
---|---|
스윙 컴포넌트의 공통 메소드2 (0) | 2020.11.04 |
이벤트 리스너 예제3 (0) | 2020.11.04 |
이벤트 리스너 예제2 (0) | 2020.11.03 |
이벤트 리스너 예제1 (0) | 2020.11.03 |