JAVA :: GUI(2)

s_omiΒ·2021λ…„ 2μ›” 5일
1

JAVA (μžλ°”)

λͺ©λ‘ 보기
17/62
post-thumbnail
post-custom-banner

πŸ“ μŠ€μœ™ GUI ν”„λ‘œκ·Έλž¨

πŸ’‘ JFrame : ν”„λ ˆμž„ 역할을 ν•˜λŠ” 클래슀

πŸ’¬ ꡬ성

ㆍFrame
ㆍ메뉴바 : λͺ¨λ“  메뉴가 λΆ€μ°©λœλ‹€.
γ†μ»¨ν…νŠΈνŒ¬ : 메뉴λ₯Ό μ œμ™Έν•œ λͺ¨λ“  GUI μ»΄ν¬λ„ŒνŠΈλ“€μ„ λΆ€μ°©ν•˜λŠ” 곡간

⚠ μ»΄ν¬λ„ŒνŠΈλ“€μ€ ν”„λ ˆμž„ 없이 λ…λ¦½μ μœΌλ‘œ 화면에 좜λ ₯ν•  수 μ—†λ‹€.

πŸ’¬ ν”„λ ˆμž„ λ§Œλ“€κΈ° (JFrame 클래슀 상속)

import javax.swing.*; // μŠ€μœ™ μ»΄ν¬λ„ŒνŠΈ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μŠ€μœ™ νŒ¨ν‚€μ§€μ˜ 경둜λͺ… import

public class MyFrame extends JFrame { // JFrame을 상속 λ°›μ•„ ν”„λ ˆμž„μ„ λ§Œλ“¦
    MyFrame() {
        ...
        setVisible(true); // ν”„λ ˆμž„μ΄ 화면에 λ‚˜νƒ€λ‚¨. false의 경우 ν”„λ ˆμž„μ΄ 숨겨짐
    }
    public static void main(String[] args) {
        MyFrame frame = new MyFrame(); // μŠ€μœ™ ν”„λ ˆμž„ 생성(MyFrame 객체가 μŠ€μœ™ ν”„λ ˆμž„ μ—­ν• )
        // main()의 κΈ°λŠ₯은 μ΅œμ†Œν™”ν•˜λŠ” 것이 μ’‹λ‹€.
    }
}

πŸ’‘ ν”„λ ˆμž„μ— μ»΄ν¬λ„ŒνŠΈ 뢙이기

πŸ’¬ 타이틀 달기

ㆍsuper() : JFrame의 μƒμ„±μž 호좜
ㆍsetTitle() : JFrame의 λ©”μ†Œλ“œ 이용

MyFrame() { //μƒμ„±μž
    super("타이틀"); // JFrame("타이틀") μƒμ„±μž 호좜
    setTitle("제λͺ©"); // 타이틀 달기
}

πŸ’¬ μ»¨ν…νŠΈνŒ¬μ— μ»΄ν¬λ„ŒνŠΈ 달기

ν”„λ ˆμž„μ˜ μ½˜ν…νŠΈνŒ¬μ— μ»΄ν¬λ„ŒνŠΈλ₯Ό 뢙이기 μœ„ν•΄μ„œλŠ” μ»¨ν…νŠΈνŒ¬μ„ μ•Œμ•„λ‚΄μ•Ό ν•œλ‹€.
ㆍJButton : μ»¨ν…νŠΈνŒ¬μ— λ²„νŠΌ 좜λ ₯
ㆍJLabel : μ»¨ν…νŠΈνŒ¬μ— λ¬Έμžμ—΄ 좜λ ₯

public class MyFrame extends JFrame {
    MyFrame() {
        Container contentPane = getContentPane(); //ν”„λ ˆμž„μ˜ μ»¨ν…νŠΈνŒ¬μ„ μ•Œμ•„λ‚Έλ‹€.
        // μ»¨ν…νŠΈνŒ¬μ€ Container νƒ€μž…
        JButton button = new JButton("Click"); // λ²„νŠΌ μ»΄ν¬λ„ŒνŠΈ 생성
        button.setBackground(Color.Blue); // λ²„νŠΌμ˜ 배경색을 νŒŒλž‘μƒ‰μœΌλ‘œ μ„€μ •
        contentPane.add(button); 
        contentPane.add(new JLabel("ν΄λ¦­ν•˜μ„Έμš”.")); 
    }
}

πŸ’¬ μ»¨ν…νŠΈνŒ¬ λ³€κ²½

μ»¨ν…νŠΈνŒ¬κ³Ό 같이 Containerλ₯Ό μƒμ†λ°›λŠ” μ–΄λ–€ μ»΄ν¬λ„ŒνŠΈλ„ μ»¨ν…νŠΈνŒ¬μ΄ 될 수 μžˆλ‹€.

public class MyFrame extends JPanel {
    //JPanel을 상속받은 νŒ¨λ„μ„ κ΅¬ν˜„
}
frame.setContentPane(new MyFrame()); // frame의 μ»¨ν…νŠΈνŒ¬μ„ MyPanel 객체둜 λ³€κ²½

πŸ’‘ μŠ€μœ™ μ‘μš©ν”„λ‘œκ·Έλž¨ μ’…λ£Œ

System.exit(0); //μžλ°” ν”„λ‘œκ·Έλž¨μ„ μ’…λ£Œ
frame.setDafaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
// ν”„λ ˆμž„ μœˆλ„μš°κ°€ λ‹«νž λ•Œ ν”„λ‘œκ·Έλž¨λ„ μ’…λ£Œ
profile
κ³΅λΆ€ν•œ κ±° μ˜¬λ €μš” :)
post-custom-banner

0개의 λŒ“κΈ€