Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

스포츠마케터의 초보 개발자 도전기

JAVA study 20 본문

develop/JAVA

JAVA study 20

teammate brothers 2024. 5. 9. 12:04

1. button

package ex1_button;

import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Ex1_Button {

	public static void main(String[] args) {

		Frame f = new Frame("버튼 테스트");
		// f.setTitle("버튼 테스트"); 제목을 변경하는 메서드

		f.setBounds(500, 200, 400, 400);

		f.setLayout(null); // 자동배치를 끈다-> 버튼들의 위치와 크기값을 지정해야한다.

		Button btn1 = new Button("버튼1");
		Button btn2 = new Button("버튼2");
		Button btn3 = new Button("버튼3");
		Button btn4 = new Button("버튼4");

		btn1.setBounds(50, 30, 140, 100); // 버튼들에게 크기와 위치를 설정하는 방법// (가로, 세로 , 너비,높이)
		btn2.setBounds(200, 30, 140, 100);
		btn3.setBounds(50, 150, 140, 100);
		btn4.setBounds(200, 150, 140, 100);

		// 만들어둔 프레임에 버튼객체를 추가
		f.add(btn1);
		f.add(btn2);
		f.add(btn3);
		f.add(btn4);

		// 각 버튼별 이벤트 감시자 등록
		btn1.addActionListener(new ActionListener() {
			// 액션 리스너 -> 액션퍼폼드 하고싶은거 입력
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("I PUSH THE BUTTON NO.1");
				// TODO Auto-generated method stub

			}
		}); // 버튼 클릭하면 하고 싶은일

		btn2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println(e.getActionCommand());
				// 버튼에 부착된 텍스트를 가져온다
				// TODO Auto-generated method stub

			}
		});

		f.addWindowListener(new WindowAdapter() {// 최소화 최대화 감지
			@Override
			public void windowClosing(WindowEvent e) {
				// System.exit(0); //열려있는 모든 프레임을 닫는 메서드
				f.dispose();
			} // 현재 프레임만 단독으로 종료

		});

		// 버튼 3,4에 대한 이벤트 감시자
		ActionListener act = new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) { // 3,4가 act를 공통적으로 가지고있지만 실행하면 다른 결과를 얻을 수 있다.

				switch (e.getActionCommand()) {
				case "버튼3":
					System.out.println(e.getID());
					System.out.println("버튼3번 클릭됨");
					break;

				case "버튼4":
					System.out.println(e.getID());
					System.out.println("button 4 click");
					break;
				}// switch

				// TODO Auto-generated method stub

			}
		};
		btn3.addActionListener(act);
		btn4.addActionListener(act);

		f.setVisible(true); // setVisible은 웬만하면 마지막에 있는게 좋다
	}// main
}

 

2. check

package ex2_check;

import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Ex1_CheckBox {
	static String myGender = "female"; // static으로 받아야 어디에서나 쓸 수 있다.
	//

	public static void main(String[] args) {

		Frame f = new Frame();
		f.setBounds(500, 200, 500, 250);
		f.setLayout(null); // 자동배치 끄기

		// 폰트 설정
		Font font = new Font("", Font.BOLD, 30); // 글꼴 ,글자스타일,글짜크기

		Label q1 = new Label("1.취미는 무엇입니까?"); // 텍스트를 보여주는 놈
		q1.setBounds(10, 35, 350, 30);
		// q1.setBackground(Color.yellow);
		q1.setFont(font);

		// 체크박스
		Checkbox news = new Checkbox("뉴스시청");
		news.setBounds(20, 70, 90, 30);

		Checkbox sports = new Checkbox("운동");
		sports.setBounds(110, 70, 50, 30);

		Checkbox movie = new Checkbox("영화");
		movie.setBounds(170, 70, 50, 30);

		Checkbox music = new Checkbox("음악감상");
		music.setBounds(240, 70, 90, 30);

		// 체크박스에 이벤트 감시자 등록
		ItemListener checkListener = new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) {

				// System.out.println(e.getItem().toString());

				switch (e.getItem().toString()) { // 아이템에 부착되어있는 글자로 판단할게

				case "뉴스시청":
					if (e.getStateChange() == 1) {// 1번은 체크가 되었다는 것 2번은 체크해제
						System.out.println("select news");
					} else {
						System.out.println("unselect news");
					}

					break;

				case "운동":
					if (e.getStateChange() == 1) {
						System.out.println("select sports");
					} else {
						System.out.println("unselect sports");
					}
					break;

				case "영화":
					if (e.getStateChange() == 1) {
						System.out.println("select moive");
					} else {
						System.out.println("unselect moive");
					}
					break;

				case "음악감상":
					break;
				}// swtich

			}
		};

		news.addItemListener(checkListener);
		sports.addItemListener(checkListener);
		movie.addItemListener(checkListener);
		music.addItemListener(checkListener);

		Label q2 = new Label("성별은 무엇입니까?");
		q2.setFont(font);
		q2.setBounds(10, 110, 300, 30);

		// 라디오버튼
		CheckboxGroup group = new CheckboxGroup();
		Checkbox female = new Checkbox("female", group, true);
		female.setBounds(20, 150, 50, 30);
		Checkbox male = new Checkbox("male", group, false);
		male.setBounds(100, 150, 50, 30);

		// 라디오버튼에 이벤트 감시자 등록
		ItemListener genderListener = new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) {
				myGender = e.getItem().toString();
				System.out.println(myGender);
				// System.out.println(e.getItem().toString());
				// TODO Auto-generated method stub

			}
		};

		female.addItemListener(genderListener);
		male.addItemListener(genderListener);

		// 만들어진 객체들을 프레임에 추가
		f.add(q1);
		f.add(news);
		f.add(sports);
		f.add(movie);
		f.add(music);
		f.add(q2);
		f.add(male);
		f.add(female);

		f.setVisible(true);

		f.addWindowListener(new WindowAdapter() {// 최소화 최대화 감지
			@Override
			public void windowClosing(WindowEvent e) {
				// System.exit(0); //열려있는 모든 프레임을 닫는 메서드
				f.dispose();
			} // 현재 프레임만 단독으로 종료

		});

	}// main
}

 

3. choice

package ex3_choice;

import java.awt.Label;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class ChoiceListener implements ItemListener {

	private Label label;

	public ChoiceListener(Label label) {
		this.label = label;

	}

	@Override
	public void itemStateChanged(ItemEvent e) {
		// TODO Auto-generated method stub

		Ex2_ChoiceMain.res = (String) e.getItem();
		label.setText(Ex2_ChoiceMain.res);

	}

}

--

package ex3_choice;

import java.awt.Choice;
import java.awt.Font;
import java.awt.Frame;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Ex1_Choice {

	static String res = "SUN";

	public static void main(String[] args) {

		Frame f = new Frame();
		f.setBounds(500, 250, 400, 100);
		f.setLayout(null); // 자동배치 끄기

		Font font = new Font("", Font.PLAIN, 20);

		Choice day = new Choice();
		day.setFont(font);
		day.add("SUN");
		day.add("MON");
		day.add("TUE");
		day.add("WED");
		day.add("THU");
		day.add("FRI");
		day.add("SAT");

		day.setBounds(10, 50, 150, 0);

		// day에 이벤트 감지자 등록
		day.addItemListener(new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) {

				res = day.getSelectedItem();
				System.out.println(res);
				// TODO Auto-generated method stub

			}
		});

		f.add(day);

		f.setVisible(true);

		f.addWindowListener(new WindowAdapter() {// 최소화 최대화 감지
			@Override
			public void windowClosing(WindowEvent e) {
				// System.exit(0); //열려있는 모든 프레임을 닫는 메서드
				f.dispose();
			} // 현재 프레임만 단독으로 종료

		});

	}
}

--

package ex3_choice;

import java.awt.Choice;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Ex2_ChoiceMain {

	static String res = "서울";

	public static void main(String[] args) {

		Frame f = new Frame();

		f.setBounds(400, 200, 500, 250);
		f.setLayout(null);

		Choice region = new Choice();
		region.add("서울");
		region.add("대전");
		region.add("인천");
		region.add("광주");
		region.add("대구");
		region.add("제주");

		region.setBounds(50, 100, 100, 0);

		// 결과를 보여줄 Label
		Label label = new Label();
		label.setText(res);
		Font labelFont = new Font("", Font.BOLD, 30);
		label.setFont(labelFont);

		label.setBounds(200, 100, 100, 100);

		// region에 감지자 추가
		region.addItemListener(new ChoiceListener(label)); // 이벤트를 요청했을때 초이스리스너 오버라이드 호출

		f.add(region);
		f.add(label);

		f.setVisible(true);
		
		f.addWindowListener(new WindowAdapter() {// 최소화 최대화 감지
			@Override
			public void windowClosing(WindowEvent e) {
				// System.exit(0); //열려있는 모든 프레임을 닫는 메서드
				f.dispose();
			} // 현재 프레임만 단독으로 종료

		});

	}

}

 

4. work

package ex4_work;

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class FrameMain {

	public static void main(String[] args) {

		Frame f = new Frame();
		f.setBounds(500, 200, 300, 300);

		f.setVisible(true);
		f.addWindowListener(new WindowAdapter() {// 최소화 최대화 감지
			@Override
			public void windowClosing(WindowEvent e) {
				// System.exit(0); //열려있는 모든 프레임을 닫는 메서드
				// f.dispose(); //현재 프레임만 단독으로 종료
				new FramePopup(); // 새로운 화면을 띄우겠다 }
			}
		});
	}// main
}

--

package ex4_work;

import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class FramePopup {

	public FramePopup() {

		Frame f = new Frame("do you want to exit?");

		f.setLayout(null);
		f.setBounds(600, 300, 250, 250);

		Button btnY = new Button("Yes");
		Button btnN = new Button("no");

		btnY.setBounds(10, 50, 70, 50);
		btnN.setBounds(100, 50, 70, 50);

		btnY.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});

		btnN.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				f.dispose();
			}
		});

		f.add(btnY);
		f.add(btnN);

		f.setVisible(true);
	}

}

--

package ex4_work;

import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class PopUp {
	public static void main(String[] args) {

		Frame f = new Frame("do you want to exit?");
		f.setBounds(500, 200, 400, 400);
		f.setLayout(null);

		Frame f2 = new Frame();
		f2.setBounds(500, 200, 400, 600);
		f2.setLayout(null);

		Label q1 = new Label("종료하시겠습니까?");
		q1.setBounds(10, 35, 350, 30);

		Button yes = new Button("예");
		yes.setBounds(20, 150, 100, 90);

		Button no = new Button("아니오");
		no.setBounds(250, 150, 100, 90);

		yes.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
				// TODO Auto-generated method stub

			}
		});
		no.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				f.dispose();
				// 버튼에 부착된 텍스트를 가져온다
				// TODO Auto-generated method stub

			}
		});

		f.add(q1);
		f.add(yes);
		f.add(no);

		f2.setVisible(true);

		f2.addWindowListener(new WindowAdapter() {// 최소화 최대화 감지
			@Override
			public void windowClosing(WindowEvent e) {
				// System.exit(0); //열려있는 모든 프레임을 닫는 메서드
				// f.dispose();} //현재 프레임만 단독으로 종료
				// new FramePopup();
				f.setVisible(true);
			}

		});

	}// main
}

 

5. memo

package ex5_memo;

import java.awt.Button;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JOptionPane;

public class Ex1_FrameMemo {
	public static void main(String[] args) {

		Frame frame = new Frame();
		frame.setBounds(500, 100, 250, 400);
		frame.setBackground(Color.CYAN);
		frame.setLayout(null); // 자동배치 끄기 - 프레임안 배치

		// TODO : 최상단 컴포넌트
		TextField tf = new TextField(10);
		tf.setBounds(10, 35, 150, 20);

		Button btn = new Button("입력");
		btn.setBounds(165, 35, 75, 20);
		btn.setEnabled(false);// 버튼 비활성화
		///////////////

		// TODO : 중앙 컴포넌트
		TextArea ta = new TextArea("", 0, 0, TextArea.SCROLLBARS_VERTICAL_ONLY);
		ta.setBounds(10, 60, 230, 290);
		ta.setEditable(false);// 읽기전용으로 만들기
		///////////////

		// TODO : 최하단 컴포넌트
		Button btnSave = new Button("저장");
		btnSave.setBounds(10, 355, 110, 30);

		Button btnClose = new Button("닫기");
		btnClose.setBounds(130, 355, 110, 30);
		//////////////

		// 프레임에 자식 컴포넌트들 추가
		frame.add(tf);
		frame.add(btn);
		frame.add(ta);
		frame.add(btnSave);
		frame.add(btnClose);

		// tf에 값이 들어간 경우에만 입력버튼 활성화
		tf.addTextListener(new TextListener() {

			@Override
			public void textValueChanged(TextEvent e) {
				if (tf.getText().equals("")) {
					btn.setEnabled(false);
				} else {
					btn.setEnabled(true);
				}
			}
		});

		// 입력버튼 클릭시 ta에 내용을 추가
		btn.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				ta.append(tf.getText() + "\n"); // append - 값이 누적되서 저장

				tf.setText("");// 텍스트 필드 비우기
				tf.requestFocus();// 커서를 tf로 이동
			}
		});

		// 엔터를 치면 tf의 값이 ta로 전달되도록 처리
		tf.addKeyListener(new KeyListener() { // addKeyListner 키보드의 입력시 인지하는 코드

			@Override
			public void keyTyped(KeyEvent e) {
				if(e.getKeyChar() == KeyEvent.VK_ENTER) {
					ta.append(tf.getText() + "\n"); // append - 값이 누적되서 저장

					tf.setText("");// 텍스트 필드 비우기
					tf.requestFocus();// 커서를 tf로 이동
				}
			}

			@Override
			public void keyReleased(KeyEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub

			}
		});
		
		//닫기버튼
		btnClose.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				//frame.dispose();
				System.exit(0);
			}
		});
		
		//저장버튼
		btnSave.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String message = ta.getText();
				
				FileWriter fw = null;
				BufferedWriter bw = null;
				
				try {
					
					FileDialog fd = new FileDialog(frame, "저장", FileDialog.SAVE);
					
					fd.setVisible(true);
					
					String path = fd.getDirectory() + fd.getFile();
					//System.out.println(path);
					
					if(!message.equals("")) {
						fw = new FileWriter(path);
						bw = new BufferedWriter(fw);
						
						bw.write(message);
						bw.flush();
					}else {
						JOptionPane.showMessageDialog(frame, "저장할 내용이 없습니다");//(부모프레임, 내용)
					}
					
				} catch (Exception e2) {
				}finally {
					try {
						bw.close();
						fw.close();
					} catch (IOException e1) {
						e1.printStackTrace();
					}
				}
			}
		});

		frame.setVisible(true);
		frame.setResizable(false); // 화면크기 변경 여부

		frame.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

	}// main
}

 

6. image

package ex6_image;

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

import javax.swing.JLabel;

public class Ex_Image {
	public static void main(String[] args) {
		
		Frame f = new Frame();
		f.setLayout(null);
		f.setBounds(500, 200, 1280, 1280);
		
		//그림을 프레임 바탕으로
		ImageIcon img = new ImageIcon("lion.jpg");
		JLabel j1 = new JLabel(img);
		j1.setBounds(0, 30, 1280, 1280);
		
		
		 
		
		f.add(j1); //배경을 제일 마지막에 add를 해야 함
		
		f.setVisible(true);
		f.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
	}//main
}

'develop > JAVA' 카테고리의 다른 글

JAVA study 22  (0) 2024.05.09
JAVA study 21  (0) 2024.05.09
JAVA study 19  (0) 2024.03.25
JAVA study 18  (0) 2024.03.21
JAVA study 17  (0) 2024.03.20