이미지아이콘 사용하기!
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();
}
}

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();
}
}

- 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();
}
}

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();
}
}
