본문 바로가기
Java/자바 Swing

[Java] 56. Swing 응용 예제: 집 그리기

글: Song hyun 2024. 4. 26.
728x90
반응형

[Java] 56. Swing 응용 예제

1. JTextField 수정하기

2. Java Swing을 사용해 그림 그리기


 

1. JTextField 수정하기

 

JTextField는 로그인 하면 떠오르는, 한 줄 높이의 텍스트창을 생성하는 클래스이다.

아래의 코드를 보면 JTextField 내의 값이 "아이디 입력"이라고 초기화된 것을 알 수 있다.

private void initData() { setTitle("컴포넌트 확인");
    setSize(800, 800);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    button = new JButton("JButton");
    label = new JLabel("글자를 띄우는 컴포넌트");
    textField = new JTextField("아이디 입력", 20);
    passwordField = new JPasswordField("비번입력", 20);
    checkBox = new JCheckBox("동의"); }

 

 

초기화식을 수정하지 않고, JTextField를 바꿔 출력해보자.

중요한 것은 객체의 주소값을 얻는 것이다.

 

(1) MyComponent component=new MyComponent를 통해 MyComponent를 새롭게 생성한다.

(2) myComponent.textField.setText <- setText 메서드를 사용해 textField 내의 텍스트를 새롭게 초기화하면 된다.

 

package ch02;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class MyComponents extends JFrame {

	private JButton button;
	private JLabel label;
	private JTextField textField;
	private JPasswordField passwordField;
	private JCheckBox checkBox;

	public MyComponents() {
		initData();
		setInitLayout();
	}

	private void initData() {
		setTitle("컴포넌트 확인");
		setSize(800, 800);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		button = new JButton("JButton");
		label = new JLabel("글자를 띄우는 컴포넌트");
		textField = new JTextField("아이디 입력", 20);
		passwordField = new JPasswordField("비번입력", 20);
		checkBox = new JCheckBox("동의");
	}

	private void setInitLayout() {

		setLayout(new FlowLayout());
		setVisible(true);

		add(button);
		add(label);
		add(textField);
		add(passwordField);
		add(checkBox);

	}

	// 메인 작업자
	public static void main(String[] args) {
	
		MyComponents components=new MyComponents(); // 객체의 주소값
		components.textField.setText("안녕하세요~");
		
	}

}

 

 

2. Java Swing을 사용해 그림 그리기

 

-add(paintFrame):

-graphic:

-drawRect(x좌표, y좌표, 가로, 세로): 사각형을 그린다.

-drawPolygon([x],[y],int): 다각형을 그린다. 입력하는 수(=int)에 따라 각의 수가 달라진다.

-drwaString(""): 문자열을 출력한다. (그린다.)

package ch02;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

import ch02.MyDrawFrame.MyDrawPanel;

public class PaintFrameTest extends JFrame {

	PaintFrame paintFrame;

	public PaintFrameTest() {
		initData();
		setInitLayout();
	}

	private void initData() {
		setTitle("내부 클래스를 활용한 그림 연습");
		setSize(600, 600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		paintFrame = new PaintFrame();

	}

	
	private void setInitLayout() {
		add(paintFrame);
		setVisible(true);
	}
	
	class PaintFrame extends JPanel{
		public void paint(Graphics g) {
			super.paint(g);

			g.drawRect(0, 350, 2000, 250);
			g.drawRect(210, 300, 10, 50);
			g.drawRect(170, 300, 15, 60);
			g.drawRect(130, 350, 18, 80);
			g.drawRect(100, 400, 20, 100);
			
			g.drawRect(340, 300, 10, 50);
			g.drawRect(380, 300, 15, 60);
			g.drawRect(420, 350, 18, 80);
			g.drawRect(450, 400, 20, 100);
			
			g.drawRect(260, 270, 20, 25);
			g.drawRect(260, 295, 20, 25);
			g.drawRect(280, 270, 20, 25);
			g.drawRect(260, 270, 40, 50);
			g.drawRect(240, 250, 80, 100);
			int x[] = { 230, 280, 330 };
			int y[] = { 250, 180, 250 };
			g.drawPolygon( x, y, 3 );
			g.drawString("⭐", 500, 200);
			g.drawString("⭐", 130, 150);
			g.drawString("⭐", 120, 200);
			g.drawString("⭐", 450, 200);
			g.drawString("⭐", 150, 150);
			g.drawString("⭐", 120, 200);
			g.drawString("⭐", 500, 200);
			g.drawString("⭐", 130, 150);
			g.drawString("⭐", 120, 200);
			g.drawString("⭐", 450, 200);
			g.drawString("⭐", 150, 150);
			g.drawString("⭐", 120, 200);
		}
	}

}
728x90
반응형