자바GUI3(국비과정)

min seung moon·2021년 3월 12일
0

영진직업전문학교

목록 보기
4/10

이미지아이콘 사용하기!

01. JLabel에 ImageIcon 사용해보기!

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import java.awt.*;

class ButtonImage extends JFrame {
	public ButtonImage() {
		setTitle("JLabel 예제");
		setLayout(new FlowLayout());
		
		JLabel Label = new JLabel("Text only Label");
		JLabel labImg = new JLabel("Image and Text");
		
		ImageIcon image = new ImageIcon("D:/mms/2021-02-26/src/icon1.gif");
		labImg.setIcon(image);
		labImg.setToolTipText("야 ! 이미지다");
		
		add(Label);
		add(labImg);
		
		setSize(300, 250);
		setVisible(true);
	}
}

public class ex02 {
	public static void main(String[] args) {
		ButtonImage buttonImage = new ButtonImage();
	}
}

02. JButton에 ImageIcon 삽입

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

class buttnIcon extends JFrame {
	public buttnIcon() {
		setTitle("buttonIcon");
		setSize(300,300);
		setVisible(true);
		
		JPanel jPanel = new JPanel();
		JButton button = new JButton("클릭");
		ImageIcon icon = new ImageIcon("D:/mms/2021-02-26/src/icon1.gif");
		button.setIcon(icon);
		
		add(jPanel);
		jPanel.add(button);
		
	}
}
public class ex03 {
	public static void main(String[] args) {
		buttnIcon buttnIcon = new buttnIcon();
	}
}

03. 간단한 Form 만들기

  • JPasswordField에 passwordField.setEchoChar('*');로 바꿀 수 있다
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import java.awt.*;

class MyFrame04 extends JFrame {
	JPanel panelTop, panelCenter, panelBottom;
	JLabel label1, label2;
	JTextField id, dataarea;
	JPasswordField passwordField;
	JButton submit, cancel;
	
	MyFrame04() {
		setTitle("로그인");
		
		submit = new JButton("확인");
		cancel = new JButton("취소");
		label1 = new JLabel("아이디", JLabel.CENTER);
		label2 = new JLabel("패스워드", JLabel.CENTER);
		
		id = new JTextField(10);
		passwordField = new JPasswordField(10);
//		passwordField.setEchoChar('*');
		dataarea = new JTextField(20);
		panelTop = new JPanel();
		panelCenter = new JPanel();
		panelBottom = new JPanel();
		
		panelTop.setLayout(new GridLayout(0, 2, 10, 10));
		panelTop.add(label1);
		panelTop.add(id);
		panelTop.add(label2);
		panelTop.add(passwordField);
		
		panelCenter.setLayout(null);
		submit.setBounds(40, 30, 100, 40);
		cancel.setBounds(150, 30, 100, 40);
		panelCenter.add(submit);
		panelCenter.add(cancel);
		
		panelBottom.add(dataarea);
		
		this.add("North", panelTop);
		this.add("Center", panelCenter);
		this.add("South", panelBottom);
		
		setSize(300, 200);
		setVisible(true);
	}
}
public class ex04 {
	public static void main(String[] args) {
		MyFrame04 frame04 = new MyFrame04();
	}
}

04. 액션 이벤트 사용해보기!

import javax.swing.*;

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

class MyFrame05	extends JFrame {
	JButton button;
	
	public MyFrame05() {
		setTitle("액션 이벤트 예제");
		setLayout(new FlowLayout());
		setSize(300, 200);
		setVisible(true);
		
		button = new JButton("Action Event");
		
		add(button);
		
		button.addActionListener(new MyEvent());
	}
	
	// inner class
	// mouse관련 이벤트는 action 이벤트
	// extends는 상속, implements는 구현한다
	class MyEvent implements ActionListener {
		@Override // ActionListner 인터페이스의 오버라이딩 된 추상 메소드
		public void actionPerformed(ActionEvent arg0) {
			button.setText("액션 이벤트");
		}
	}
}


public class ex05 {
	public static void main(String[] args) {
		MyFrame05 frame05 = new MyFrame05();
	}
}

05. 액션이벤트로 이미지 출력

import javax.swing.*;

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


class MyFrame06 extends JFrame {
	JButton button;
	JLabel label;
//	int index = 0;
	public MyFrame06() {
		setTitle("Event 예제");
		setLayout(new FlowLayout());
		
		button = new JButton("버튼 이미지");
		label = new JLabel();
		
		button.setToolTipText("wow image");
		add(button);
		add(label);
		button.addActionListener(new MyEvent());
		
		setSize(300,250);
		setVisible(true);
	}
	
	class MyEvent implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			ImageIcon icon = new ImageIcon("D:/mms/2021-02-26/src/icon.jpg");
			label.setIcon(icon);
		}
		
	}
}

public class ex06 {
	public static void main(String[] args) {
		MyFrame06 frame06 = new MyFrame06();
	}
}

06. 액션이벤트에 조건 넣어서 전환하기!

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

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


class MyFrame07 extends JFrame {
	JButton button;
	JPanel panel;
	
	MyFrame07() {
		setTitle("buttonText");
		setSize(300, 250);
		setVisible(true);
		
		button = new JButton("ActionEvent");
		panel = new JPanel();
		
		button.addActionListener(new MyEvent());
		
		add(panel);
		panel.add(button);
		
	}
	
	class MyEvent implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			// getActionCommand()는 버튼의 텍스트 반환
			String str = e.getActionCommand();
			if(str == "ActionEvent")
				button.setText("액션이벤트");
			else
				button.setText("ActionEvent");
		}
		
	}
}

public class ex07 {
	public static void main(String[] args) {
		MyFrame07 frame07 = new MyFrame07();
	}
}

07. 액션버튼에 조건으로 JLabel 바꾸기!

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

class MyFrame08 extends JFrame {
	JButton button;
	JLabel label;
	JPanel panel;
	
	public MyFrame08() {
		setTitle("ex08");
		setSize(300, 200);
		setVisible(true);
		
		button = new JButton("ActionEvent 버튼");
		panel = new JPanel();
		label = new JLabel("아직 버튼이 눌려지지 않았습니다");
		
		add(panel);
		panel.add(button);
		panel.add(label);
		
		button.addActionListener(new MyEvent());
	}
	
	class MyEvent implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			String str = e.getActionCommand();
			
			if(str == "ActionEvent 버튼"){
				button.setText("액션이벤트 버튼");
				label.setText("버튼이 on되었습니다");
			}else {
				button.setText("ActionEvent 버튼");
				label.setText("버튼이 off되었습니다");
			}
			
		}
		
	}
}

public class ex08 {
	public static void main(String[] args) {
		MyFrame08 frame08 = new MyFrame08();
	}
}

08. Form에 값 넣어보기!

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

import javax.swing.*;


class MyFrame10 extends JFrame {
	JPanel panelTop, panelCenter, panelBottom;
	JLabel label1, label2;
	JTextField id, dataarea;
	JPasswordField passwordField;
	JButton submit, cancel;
	
	MyFrame10() {
		setTitle("로그인");
		
		submit = new JButton("확인");
		cancel = new JButton("취소");
		label1 = new JLabel("아이디", JLabel.CENTER);
		label2 = new JLabel("패스워드", JLabel.CENTER);
		
		id = new JTextField(10);
		passwordField = new JPasswordField(10);
//		passwordField.setEchoChar('*');
		dataarea = new JTextField(20);
		
		panelTop = new JPanel();
		panelCenter = new JPanel();
		panelBottom = new JPanel();
		
		panelTop.setLayout(new GridLayout(0, 2, 10, 10));
		panelTop.add(label1);
		panelTop.add(id);
		panelTop.add(label2);
		panelTop.add(passwordField);
		
		panelCenter.setLayout(null);
		submit.setBounds(40, 30, 100, 40);
		cancel.setBounds(150, 30, 100, 40);
		panelCenter.add(submit);
		panelCenter.add(cancel);
		
		panelBottom.add(dataarea);
		
		this.add("North", panelTop);
		this.add("Center", panelCenter);
		this.add("South", panelBottom);
		
		submit.addActionListener(new MyEvent());
		cancel.addActionListener(new MyEvent());
		
		setSize(300, 200);
		setVisible(true);
	}
	
	class MyEvent implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			if(e.getActionCommand() == "확인") {
				if(id.getText().isEmpty()|| passwordField.getText().isEmpty()) {
					dataarea.setText("빈 값 입니다!");
				}else {
					dataarea.setText("ID : "+id.getText()+" / PW : "+passwordField.getText());
				}
			}else if(e.getActionCommand()== "취소") {
				id.setText("");
				passwordField.setText("");
			}
			
		}
		
	}
}

public class ex10 {
	public static void main(String[] args) {
		MyFrame10 frame10 = new MyFrame10();
	}
}

profile
아직까지는 코린이!

0개의 댓글

관련 채용 정보