Python

Python 05 - JFrame (JAVA)

inderrom 2022. 12. 26. 17:42
AWT

 

자바에서 실행을 시킬 때 window창 = Frame

package day04;

import java.awt.Frame;

public class AwtTest {
	public static void main(String[] args) {
		Frame f = new Frame();
		f.setVisible(true);
		f.setSize(400,600);
		
	}
}

setVisible = 창을 보이게 하는 것

setSize = 창의 크기

실행시키면 창이 켜짐

 


Swing
package day04;

import javax.swing.JFrame;

public class SwingTest {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(300,300);
	}
		
}

생성 - size - visible

 


WindowBulider

help - Eclipse Marketplace - windowBuilder 1.10.0 Install

 

windowBuilder install

 

제대로 설치가 되었다면 project를 생성할 때 다운 받아져 있는 걸 확인할 수 있다.

 

 

Swing을 실행해보자!

 

 

project에서  JFrame 생성 

 

<Swing01.java>

package day04;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class Swing01 extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Swing01 frame = new Swing01();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Swing01() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

		setContentPane(contentPane);
	}

}

코드가 자동 생성 되어있다.

 

 

Source옆에 Design을 누르면 툴이 나옴

 

라벨을 누르면 실행 시킬 때 라벨이 추가되고

 

소스를 다시 눌러봤을 때 라벨에 관한 코드가 작성된다.

 

 activate : 활성화

 

defalut : BorderLayout

xywh : Absolute layout

 

 

,, 이런 식으로 window창 디자인을 할 수 있다

 


 

버튼을 클릭하면 Text를 바꿔보세요!

 

package day04;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class Swing01 extends JFrame {

	private JPanel pane;
	private JButton btn;
	private JLabel lbl;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Swing01 frame = new Swing01();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Swing01() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		setTitle("롬숙제");
		pane = new JPanel();
		pane.setBorder(new EmptyBorder(5, 5, 5, 5));
		
		setContentPane(pane);
		pane.setLayout(null);

		JLabel lbl = new JLabel("Good Morning");
		lbl.setBounds(76, 37, 94, 35);
		pane.add(lbl);
		
		//lbl.setText("Good Evening");
		
		JButton btn = new JButton("Click!");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				lbl.setText("Good Evening");
			}
		});
	
			
//			public void actionPerformed(ActionEvent e) {
//				if(lbl.getText() == "Good Morning") {
//					lbl.setText("Good Evening");
//				}else {
//					lbl.setText("집에보내도");
//				}
//			}
		btn.setBounds(171,43,97,23);
		pane.add(btn);
	}
	
}

 

 

이런 식으로 코드를 작성하고

 

실행을 시키면 버튼을 클릭했을 때 text가 바뀐다.