728x90

UI 활용!

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

public class test extends JFrame {
    JButton j = new JButton("Cal");
    JLabel jl = new JLabel("계산결과");

    test() {
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        c.add(j);
        c.add(jl);

        setVisible(true);
        // cal 버튼을 눌렀을 때
        j.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Aa a = new Aa(); // JDialog
                a.setVisible(true);
            }
        });
    }

    class Aa extends JDialog {
        JTextField f1 = new JTextField(15);
        JTextField f2 = new JTextField(15);

        JButton j2 = new JButton("ADD");

        Aa() {
            setLayout(new FlowLayout());
            add(new JLabel("두 수 를 더 합 니 다"));
            add(f1);
            add(f2);
            add(j2);

            j2.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    setVisible(false); //dialog 종료
                    int sum = Integer.parseInt(f1.getText()) +
                            Integer.parseInt(f2.getText());
                    jl.setText(Integer.toString(sum));
                }
            });
        }
    }

    public static void main(String[] args) {
        new test();
    }
}

 

 

 

 

JComboBox

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

public class test extends JFrame {

    String s[] = {"Sonny", "고죠 사토루"};

    ImageIcon[] im = {new ImageIcon("C:/Users/Kang/Pictures/쏘니.jfif"),
            new ImageIcon("C:/Users/Kang/Pictures/고죠사토루.jfif")
    };
    JLabel j = new JLabel(im[0]);

    test() {
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        setVisible(true);

        JComboBox com = new JComboBox(s);
        c.add(j);
        c.add(com);

        com.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JComboBox c = (JComboBox) e.getSource();
                int i = c.getSelectedIndex();
                //콤보박스의 선택된 아이템 인덱스 알아내기
                j.setIcon(im[i]);
            }
        });
    }

    public static void main(String[] args) {
        new test();
    }
}

계산해서 띄우기 (난수발생)

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

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

        JFrame j = new JFrame();
        j.setLayout(new FlowLayout());

        int n = (int)(Math.random()*50)+1;
        JLabel num = new JLabel(Integer.toString(n));
        j.add(num);

        j.setVisible(true);

        JButton plus=new JButton("+5");
        JButton minus=new JButton("-5");

        plus.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                plus.setEnabled(false);
                minus.setEnabled(true); // minus 버튼 활성화
                int n=Integer.parseInt(num.getText());
                // 문자열 num을 정수로 바꿈
                num.setText(Integer.toString(n+5));
                // 정수를 다시 문자열로 변경해서 띄움
            }
        });
        minus.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                minus.setEnabled(false);
                plus.setEnabled(true); // plus 버튼 활성화
                int n=Integer.parseInt(num.getText());
                // 문자열 num을 정수로 바꿈
                num.setText(Integer.toString(n-5));
                // 정수를 다시 문자열로 변경해서 띄움
            }
        });
        j.add(plus);
        j.add(minus);

    }
}
728x90
728x90

다이얼로그 Dialog

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

public class Test1 extends JFrame {
    Test1() {
        Container c = getContentPane();
        setVisible(true);
        c.add(new Dia(), BorderLayout.NORTH);
    }

    class Dia extends Panel {
        JButton j = new JButton("이름 입력");
        JTextField j1 = new JTextField(10);
        JButton j2 = new JButton("확인");
        JButton j3 = new JButton("메세지");

        Dia() {
            setBackground(Color.CYAN);
            add(j);
            add(j1);
            add(j2);
            add(j3);

            j.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    String name = JOptionPane.showInputDialog("이름 입력");
                    if (name != null) {
                        j1.setText(name);
                    }
                }
            });

            j2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    int r = JOptionPane.showConfirmDialog(null, "계속?", "확인", JOptionPane.YES_NO_OPTION);
                    if (r == JOptionPane.CLOSED_OPTION) {
                        j1.setText("선택안했다");
                    } else if (r == JOptionPane.YES_OPTION) {
                        j1.setText("네");
                    } else {
                        j1.setText("아니오");
                    }
                }
            });

            j3.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    JOptionPane.showMessageDialog(null, "경고", "메세지", JOptionPane.WARNING_MESSAGE);
                }
            });
        }
    }

    public static void main(String[] args) {
        new Test1();

    }
}

 

 

 

객체배열 버튼

import javax.swing.*;
import java.awt.*;

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

        Color c[] = {Color.red, Color.orange, Color.yellow, Color.green, Color.blue};

        JFrame j = new JFrame();
        j.setLayout(new GridLayout(1,5));

        JButton [] buttons = new JButton[5]; //객체 배열
        for(int i=0;i<buttons.length;i++){
            buttons[i]=new JButton(String.valueOf(i));
            buttons[i].setBackground(c[i]);
            j.add(buttons[i]);
        }
        j.setVisible(true);
        
        
    }
}

 

 

 

쓰레드와 AWT 연결

import java.awt.*;
import javax.swing.*;
class Th extends Thread{
    JLabel j;

    Th(JLabel j){
        this.j=j;
    }
    @Override
    public void run() {
        int n=0;
        while(true) {
            j.setText(Integer.toString(n));
            n++;
            try {
                sleep(1000);
            }catch(Exception e) {
                return;
            }
        }
    }
}
public class Test1 extends JFrame{
    Test1(){
        Container c=getContentPane();
        c.setLayout(new FlowLayout());
        JLabel j=new JLabel();
        c.add(j);

        Th t=new Th(j);  //쓰레드 객체 생성
        t.start();  //쓰레드 실행

        setVisible(true);
    }

    public static void main(String[] args) {

        new Test1();

    }
}
728x90
728x90

SwingConstants / ImageIcon (이미지 집어넣기)

import javax.swing.*;
import java.awt.*;

public class Test1 extends JFrame {
    Test1(){
        Container c=getContentPane();
        setVisible(true);
        c.setLayout(new FlowLayout());

        JLabel j = new JLabel("안녕하세요");

        ImageIcon i = new ImageIcon("C:\\\\Users\\\\Kang\\\\Pictures/BB1hd16x.jfif");
        JLabel j1=new JLabel(i); // 사진은 항상 JLable 매개변수로 들어온다

        JLabel j2=new JLabel("월요일임",SwingConstants.CENTER);

        c.add(j);
        c.add(j1);
        c.add(j2);

    }

    public static void main(String[] args) {
        new Test1();
    }
}

 

 

JRadioButton / JCheckBox (체크박스 선택 안했을시 다음 선택 못함)

import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
class Check implements ItemListener {

    JRadioButton b1, b2, b3;

    Check(JRadioButton b1, JRadioButton b2, JRadioButton b3) {
        this.b1 = b1;
        this.b2 = b2;
        this.b3 = b3;
    }

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED) {
            //체크박스 선택했을 때
            //라디오버튼 활성화
            b1.setEnabled(true);
            b2.setEnabled(true);
            b3.setEnabled(true);
        } else {  //체크박스 선택 안했을 시
            b1.setEnabled(false);
            b2.setEnabled(false);
            b3.setEnabled(false);
        }
    }
}

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

        JFrame j = new JFrame();
        j.setLayout(new GridLayout(0, 1));

        JCheckBox jc = new JCheckBox("공부선택");

        JRadioButton b1 = new JRadioButton("java");
        JRadioButton b2 = new JRadioButton("python");
        JRadioButton b3 = new JRadioButton("c++");

        //라디오버튼이기때문 하나만 선택가능
        ButtonGroup g1 = new ButtonGroup();
        g1.add(b1);
        g1.add(b2);
        g1.add(b3);

        j.add(jc);
        j.add(b1);
        j.add(b2);
        j.add(b3);
        //라디오버튼 비활성화
        b1.setEnabled(false);
        b2.setEnabled(false);
        b3.setEnabled(false);

        jc.addItemListener(new Check(b1, b2, b3));

        j.setVisible(true);

        b1.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                if(e.getStateChange() == ItemEvent.SELECTED){
                    System.out.println("자바~");
                }
            }
        });
        b2.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                if(e.getStateChange() == ItemEvent.SELECTED){
                    System.out.println("파이썬~");
                }
            }
        });
        b3.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                if(e.getStateChange() == ItemEvent.SELECTED){
                    System.out.println("씨플~");
                }
            }
        });
    }
}

 

 

 

JTextField / JTextArea (입력값 텍스트박스에 저장 / like 계산기?)

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

public class Test1 extends JFrame {
    JTextField j = new JTextField(20);
    JTextArea j1 = new JTextArea(10,20);

    Test1() {
        Container c = getContentPane();
        setVisible(true);
        c.setLayout(new FlowLayout());

        JLabel jl=new JLabel("enter키 입력");
        c.add(j);
        c.add(jl);
        c.add(new JScrollPane(j1));

        j.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JTextField jt=(JTextField) e.getSource();
                j1.append(jt.getText()); // 텍스트필으데 입력한 문자를 textarea에 삽입

                jt.setText(""); // 공백으로 초기화
            }
        });

    }

    public static void main(String[] args) {
        new Test1();

    }
}

728x90
728x90

마우스 가져다 대면 글자 바뀌기

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Scanner;

class My extends MouseAdapter{
    @Override
    public void mouseEntered(MouseEvent e){
        JLabel j =(JLabel) e.getSource();
        j.setText("Interesting");
    }

    @Override
    public void mouseExited(MouseEvent e){
        JLabel j =(JLabel) e.getSource();
        j.setText("The JAVA is");

    }
}


public class test1 extends JFrame {
    test1() {
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        setVisible(true);

        JLabel j = new JLabel("자바는"); // 글자, 이미지
        c.add(j);

        j.addMouseListener(new My());
    }

    public static void main(String[] args) {
        new test1();


    }
}

 

 

 

 

체크박스 체크하면 값 출력하기

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Scanner;



public class test1 extends JFrame {
    test1() {
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        setVisible(true);


        JCheckBox j = new JCheckBox("자바");
        c.add(j);

        j.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                if(e.getStateChange() == ItemEvent.SELECTED){
                    System.out.println("Java is Crazy");
                }

            }
        });
    }

    public static void main(String[] args) {
        new test1();


    }
}

 

 

 

체크박스 대량생성

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Scanner;



public class test1 extends JFrame {
    test1() {
        Container c = getContentPane();
        setVisible(true);

        JCheckBox j[]=new JCheckBox[15]; // 객체배열
        c.setLayout(new GridLayout(3,5)); //행렬구조

        //객체를 생성해서 배열에 저장!!!!
        for (int i=0;i<j.length;i++){
            j[i]=new JCheckBox("check"+(i+1));
            c.add(j[i]);
        }

    }

    public static void main(String[] args) {
        new test1();

    }
}

 

 

라디오 버튼 생성 , 클릭시 배경 색 바꾸기

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Scanner;



public class test1 extends JFrame {
    JRadioButton j1=new JRadioButton("짜장면");
    JRadioButton j2=new JRadioButton("짬뽕");

    test1() {
        Container c = getContentPane();
        setVisible(true);
        c.setLayout(new FlowLayout());

        ButtonGroup b1=new ButtonGroup(); // 이거 안하면 중복 선택 됌
        b1.add(j1);
        b1.add(j2);

        c.add(j1);
        c.add(j2);

        A a = new A();
        j1.addItemListener(a);
        j2.addItemListener(a);

    }
class A implements ItemListener{
    @Override
    public void itemStateChanged(ItemEvent e) {
        if(e.getStateChange()!=ItemEvent.SELECTED){
            return;
        }
        if(e.getItem()==j1){
            System.out.println("짜장면");
        } else if (e.getItem()==j2){
            getContentPane().setBackground(Color.RED);
        }
    }
}


    public static void main(String[] args) {
        new test1();

    }
}

 

728x90
728x90

 

MouseClickedEvents 보다 ActionListener를 더 많이 사용함

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

class My implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e){
        JButton b=(JButton) e.getSource(); //이벤트가 어디서 발생했니? = Jbutton에서!

        if(b.getText().equals("클릭")){ //이벤트가 발생한 버튼명 알아냄
           b.setText("click");
        }
        else
            b.setText("클릭");
        
    }
}

public class Test1 extends JFrame {
    Test1(){
        Container c= getContentPane();
        c.setLayout(new FlowLayout());

        JButton j1 = new JButton("클릭");

        c.add(j1);
        setVisible(true);

        j1.addActionListener(new My());

    }

    public static void main(String[] args) {

        new Test1();
    }
}

 

 

 

 

 

버튼 비활성

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


public class Test1 extends JFrame {
    Test1(){
        Container c= getContentPane();
        c.setLayout(new FlowLayout());

        JButton j1 = new JButton("ok");
        JButton j2 = new JButton("cancle");

        c.add(j1);
        c.add(j2);
        setVisible(true);


        j1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("ok");
            }
        });

        j2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                j2.setEnabled(false); // 버튼 비활성화
            }
        });
    }

    public static void main(String[] args) {

        new Test1();
    }
}

 

 

드래그 할 때 색 변환

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;

class Mouse extends MouseAdapter{
	@Override
	public void mouseDragged(MouseEvent e) {
		Container c=(Container)e.getSource();
		c.setBackground(Color.yellow);
	}	
	@Override
	public void mouseReleased(MouseEvent e) {
		Container c=(Container)e.getSource();
		c.setBackground(Color.pink);
	}	
}
public class Test1 extends JFrame{
	Test1(){
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		c.setBackground(Color.pink);
	
		setVisible(true);
		
		c.addMouseListener(new Mouse());
		c.addMouseMotionListener(new Mouse());
		
	}
		
	public static void main(String[] args) {	
		new Test1();
	}
}
728x90
728x90

마우스 버튼 활성화해서 출력하기

 

FlowLayout

import javax.swing.*;
import java.awt.*;

public class Main extends JFrame {

    Main(){
        super("java"); //제목설정
        setVisible(true); // 프레임 출력 메소드

        JButton j1 = new JButton("버튼1");
        JButton j2 = new JButton("버튼2");
        JButton j3 = new JButton("버튼3");

        Container c = getContentPane(); // 컨텐트팬 알아내기
        c.add(j1); // 버튼 출력
        c.add(j2);
        c.add(j3);

        c.setLayout(new FlowLayout());//배치관리자 - 순서대로 배치
    }

        public static void main(String[] args) {

        new Main(); //생성자 호출

    }
}

 

 

BorderLayout

import javax.swing.*;
import java.awt.*;

public class Main {

    public static void main(String[] args) {

        JFrame j = new JFrame();
        j.setLayout(new BorderLayout());

        j.add(new JButton("동"), BorderLayout.EAST);
        j.add(new JButton("서"), BorderLayout.WEST);
        j.add(new JButton("남"), BorderLayout.SOUTH);
        j.add(new JButton("북"), BorderLayout.NORTH);
        j.add(new JButton("중앙"), BorderLayout.CENTER);

        j.setVisible(true);

    }
}

 

 

 

마우스버튼 누르면 이벤트 생성

MouseClickedEvent

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

class Mouse extends MouseAdapter{
    @Override
    public void mouseClicked(MouseEvent e){
        System.out.println("마우스클릭");
        
    }
}

public class Main {

    public static void main(String[] args) {

        JFrame j = new JFrame();
        j.setLayout(new FlowLayout());

        JButton j1=new JButton("one");
        JButton j2=new JButton("two");

        j.add(j1);
        j.add(j2);

        j.setVisible(true);

        //one 버튼으 ㄹ마우스로 클릭했을 때(이벤트 처리)
        j1.addMouseListener(new Mouse());

    }
}

728x90

+ Recent posts