JAVA :: Ch.9 실습문제

smi·2021년 2월 11일
0

JAVA (자바)

목록 보기
24/62
post-thumbnail

📒 문제 1

-난이도 하

💬 JLabel 컴포넌트는 Mouse 이벤트를 받을 수 있다. JLabel 컴포넌트의 초기 문자열을 "내림"라고 출력하고, 레이블에 마우스를 올리면 "올림"으로, 내리면 "내림"이 다시 출력되도록 프로그램을 작성하라.

👉 실행 결과

ㆍ내렸을 때

ㆍ올렸을 때

.
.
.
.
.

👉 프로그램 코드


📒 문제 2 (미완성)

-난이도 하

💬 프레임의 컨텐트팬의 초기 색을 Color.CYAN으로 하고, R 키를 누르는 순간 배경색이 Color.RED 색으로 변했다가, 키를 떼면 다시 초기 색으로 돌아오는 프로그램을 작성하라.

👉 실행 결과

.
.
.
.
.

👉 프로그램 코드


※ 색 안변함.


📒 문제 3 (미완성)

-난이도 중

💬 컨텐트팬의 배경색은 초록색으로 하고, 마우스의 드래깅 동안만 노란색으로 나타나는 프로그램을 작성하라. 드래깅을 멈추면 초록색이 된다.

👉 실행 결과

.
.
.
.
.

👉 프로그램 코드

public class MyFrame extends JFrame {
    Container contentPane = getContentPane();
    MyFrame() {
        setTitle("드래깅 색변화 연습");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        contentPane.addMouseListener(new MyMouseListener());
        contentPane.setBackground(Color.GREEN);

        setSize(200, 150);
        setVisible(true);
    }
    class MyMouseListener extends MouseAdapter {
        public void mouseDragged(MouseEvent e) {
            contentPane.setBackground(Color.YELLOW);
        }
    }
    public static void main(String[] args) {
        new MyFrame();
    }
}

📒 문제 4 (미완성)

-난이도 중

💬 JLabel 컴포넌트를 이용하여 "Love Java"를 출력하고, + 키를 치면 폰트 크기를 5픽셀씩 키우고, - 키를 치면 폰트 크기를 5픽셀씩 줄이는 스윙 프로그램을 작성하라. 5픽셀 이하로 작아지지 않도록 하라.

👉 실행 결과

.
.
.
.
.

👉 프로그램 코드

public class MyFrame extends JFrame {
    Container contentPane = getContentPane();
    //JPanel contentPane = new JPanel();
    JLabel la = new JLabel("Love Java");
    MyFrame() {
        setTitle("+, - 키로 폰트 크기 변경");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        //setContentPane(contentPane);
        la.setFont(new Font("Arial", Font.PLAIN, 10));
        contentPane.addKeyListener(new MyKeyListener());
        contentPane.setLayout(new FlowLayout());
        contentPane.add(la);

        setSize(500, 450);
        setVisible(true);
    }
    class MyKeyListener extends KeyAdapter {
        public void keyPressed(KeyEvent e) {
            Font f = la.getFont();
            int size = f.getSize();
            //int keyCode = e.getKeyCode();
            /*switch (keyCode) {
                case KeyEvent.VK_PLUS: la.setFont(new Font("Arial", Font.PLAIN, size+5)); break;
                case KeyEvent.VK_MINUS:
                    if (size > 9) {
                        la.setFont(new Font("Arial", Font.PLAIN, size - 5));
                    }
                    break;
            }
            if(e.getKeyChar() == '+') {
                la.setFont(new Font("Arial", Font.PLAIN, size+5));
            } else if (e.getKeyChar() == '-') {
                if (size > 9) {
                    la.setFont(new Font("Arial", Font.PLAIN, size-5));
                }
            }
        }
    }
    public static void main(String[] args) {
        new MyFrame();
    }
}

📒 문제 5

-난이도 중

💬 클릭 연습용 스윙 응용프로그램을 작성하라. JLabel을 이용하여 문자열 "C"인 레이블을 하나 만들고 초기 위치를 (50,50)으로 하라. 문자열을 클릭할 때마다 레이블은 프레임 내의 랜덤한 위치로 움직인다.

👉 실행 결과

.
.
.
.
.

👉 프로그램 코드

리스너를 적용시킬 대상이 무엇인 지 인지!

profile
공부한 거 올려요 :)

0개의 댓글