본문 바로가기

프로그램언어/자바

스윙 컴포넌트의 공통 메소드1

스윙 컴포넌트의 공통 메소드

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