GUI ๋ณต์Šตํ•˜๊ธฐ ๐Ÿ’ป

๋ฆฌ๋ฌด rimu ยท2022๋…„ 12์›” 20์ผ
0

Java

๋ชฉ๋ก ๋ณด๊ธฐ
14/35
post-thumbnail

JFrame ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜๋Š” ์†Œ์Šค

import javax.swing.JFrame;

public class java14_1 {

	public static void main(String[] args) {
		JFrame MainFrame = new JFrame();
		// ์ƒ๋‹จ ํƒ€์ดํ‹€ ๋„ฃ์–ด์ฃผ๊ธฐ setTitle
		MainFrame.setTitle("swing ์—ฐ์Šต");
		// ํ”„๋ ˆ์ž„ ํฌ๊ธฐ ์ง€์ • setSize
		MainFrame.setSize(200,200);
		// ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ด๊ณ ์ž ํ•  ๋•Œ setVisible
		MainFrame.setVisible(true);
	}
}

์ปดํŒŒ์ผํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋œฌ๋‹ค! โค๏ธ

JFrame์„ ์ƒ์†ํ•˜์—ฌ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜๋Š” ์†Œ์Šค

  1. ํ”„๋ ˆ์ž„ ์ƒ์„ฑ
  2. ์ปดํฌ๋„ŒํŠธ ์—ฐ๊ฒฐ
  3. ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ์ž = ๋‚˜์—ด ํ˜•ํƒœ ์ œ๊ณต
(FlowLayout, BorderLayout, GridLayout, CardLayout)

import javax.swing.JButton;
import javax.swing.JFrame;

public class java14_3 extends JFrame {
	java14_3() {
		setTitle("Swing ์—ฐ์Šต");
		setSize(200,200);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		/* 1) ๋ฒ„ํŠผ์„ ์ปจํƒํŠธ ํŒฌ์„ ํ†ตํ•ด ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ
		 * Container ContentPane = getContentPane();
		 * ContentPane.setLayout(null); // ์ปดํฌ๋„ŒํŠธ ๋ฐฐ์น˜ null๋กœ ์ง€์ •; ์ง์ ‘ ์ง‘์–ด ๋„ฃ๊ฒ ๋‹ค!
		 * JButton button = new JButton("test"); 
		 * button.setSize(70,20); 
		 * button.setLocation(50,10);
		 * ContentPane.add(button); // ์ปจํƒํŠธํŒฌ์— ๋ฒ„ํŠผ ์ถ”๊ฐ€
		 */
		
		// 2) JFrame๋ฅผ ํ†ตํ•ด ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ
		this.setLayout(null);
		JButton button = new JButton("test");
		button.setSize(70,20);
		button.setLocation(50,10);
		this.add(button);
 }
		
	public static void main(String[] args) {
		new java14_3();
	}
}

๐Ÿ’กJFrame๋ฅผ ํ†ตํ•ด ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€!

์Šค์œ™ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ์‹œ, ๋‹ซ๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ๋ˆˆ์œผ๋กœ๋Š” ๋‹ซ๊ธฐ ๋ฒ„ํŠผํ•ด์„œ
์‚ฌ๋ผ์ง„๊ฑฐ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‚ฌ์‹ค ์Šค์œ™์€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ๋Š” ์‚ด์•„์žˆ์Œ
๊ทธ๋Ÿด ๊ฒฝ์šฐ ํ”„๋ ˆ์ž„ ์ž‘์„ฑ ์‹œ close ๋ฒ„ํŠผ์— ๋Œ€ํ•ด์„œ ์–ด๋–ป๊ฒŒ ์ข…๋ฃŒํ• ๊ฑด์ง€์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ ํ•ด ์ค˜์•ผ ํ•จ!
๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์„ค์ •ํ•ด์ฃผ๊ธฐ!
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์„ ๋‹ซ์Œ์„ ๋™์‹œ์— ์Šค์œ™ ํ”„๋ ˆ์ž„๋„ ๊ฐ™์ด ์ข…๋ฃŒ๋จ!

์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๐ŸŽ‰

๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์œผ๋ฉด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๊ฑฐ์— ๋Œ€ํ•œ ๋ฉ”์„ธ์ง€๊ฐ€ ๋ฐœ์ƒ์ด ๋˜๊ณ  ๊ทธ ๋ฉ”์„ธ์ง€์— ํ•ด๋‹น์ด ๋˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜์–ด์ง€๊ฒŒ ๋จ.

์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ => ๋ฆฌ์Šค๋„ˆ listener
๋ฆฌ์Šค๋„ˆ์˜ ์‹ค์ฒด => ์ธํ„ฐํŽ˜์ด์Šค(์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฉ”์„œ๋“œ ์ •์˜)

๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ์ž ๐Ÿ”ง

๊ฐœ๋…: ์ปจํ…Œ์ด๋„ˆ์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ์œ„์น˜์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•
=> ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ์ž

  • ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ์ž : setLayout() ๋ฉ”์„œ๋“œ ํ†ตํ•ด์„œ ์ง€์ •
    setLayout(null) ๋„ฃ์œผ๋ฉด ์ž„์˜๋กœ set up์„ ํ•  ์ˆ˜ ์žˆ์Œ

> BorderLayout ๊ด€๋ฆฌ์ž

์ปจํ…Œ์ด๋„ˆ๋ฅผ 5๊ฐœ์˜ ์˜์—ญ(๋™, ์„œ, ๋‚จ, ๋ถ, ์ค‘์•™)์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐฐ์น˜
BorderLayout.EAST
BorderLayout.WEST
BorderLayout.SOUTH
BorderLayout.NORTH

  • ๋ถ„ํ•  ์˜์—ญ ์„ค์ • ์ฝ”๋“œ
    setLayout(new BorderLayout());
    add(new Button("North"),BorderLayout.NORTH);

  • ์ปดํฌ๋„ŒํŠธ์˜ ์ˆ˜์ง๊ณผ ์ˆ˜ํ‰ ๊ฐ„๊ฒฉ ์„ค์ •
    // ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด์„œ
    BorderLayout(int hgap, int vgap)
    void setHgap(int hgap)
    void setVgap(int vgap)

> GridLayout ๊ด€๋ฆฌ์ž

  • ์ปจํ…Œ์ด๋„ˆ ๊ณต๊ฐ„์„ ๊ฒฉ์ž๋ชจ์–‘์œผ๋กœ ํ–‰๊ณผ ์—ด๋กœ ๋‚˜๋ˆ„๋Š” ๊ด€๋ฆฌ์ž
    setLayout(new GridLayout(3,2)); // 3์— 2์—ด
    add(new Button("1"));

  • ์ปดํฌ๋„ŒํŠธ์˜ ์ˆ˜์ง๊ณผ ์ˆ˜ํ‰ ๊ฐ„๊ฒฉ ์„ค์ •
    GridLayout(int rows, int cols)
    GridLayout(int rows, int cols, int hgap, int vgap)
    void setHgap(int hgap)
    void setRows(int rows)
    void setVgap(int vgap)

> FlowLayout ๊ด€๋ฆฌ์ž

  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚˜์—ดํ•ด์ฃผ๋Š” (์œ„์น˜์‹œํ‚ค๋Š”) ๊ด€๋ฆฌ์ž
    FlowLayout(int align)
    FlowLayout(int align, int hgap, int vgap)
    void setHgap(int hgap)
    coid setVgap(int vgap)

> CardLayout ๊ด€๋ฆฌ์ž

  • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฒน์ณ์„œ ๋‚˜์—ด๋˜๋Š” ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ์ž
    CardLayout(int hgap, int vgap)
    void setHgap(int hgap)
    void setVgap(int vgap)
profile
JAVA / SQL / Spring ์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿฅ

0๊ฐœ์˜ ๋Œ“๊ธ€