본문 바로가기
IT/JAVA

[Java] java.awt.event 예제

by 행복한 용용이 2020. 10. 2.
반응형

ListTest

 

 

    package com.kitri.awt.event;

 

 

 

    import java.awt.*;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

 

 

    public class ListTest extends Frame implements ActionListener{

 

        Panel p1 = new Panel();

        Panel p2 = new Panel();

        Panel p3 = new Panel();

 

        List listL = new List();

        List listR = new List(0, true);

        TextField tfL = new TextField();

        TextField tfR = new TextField();

 

        Button btR = new Button("▷");

        Button btRAll = new Button("▶");

        Button btL = new Button("◁");

        Button btLAll = new Button("◀");

 

        public ListTest() {

            super("리스트 테스트");

 

            p1.setLayout(new BorderLayout(0, 10));

            p1.add(listL,"Center");

            p1.add(tfL,"South");

 

            p2.setLayout(new GridLayout(6, 1, 0, 20));

            p2.add(new Label(""));

            p2.add(btR);

            p2.add(btRAll);

            p2.add(btL);

            p2.add(btLAll);

 

            p3.setLayout(new BorderLayout(0, 5));

            p3.add(listR,"Center");

            p3.add(tfR,"South");

 

            setLayout(new GridLayout(1, 3, 10, 0));

            add(p1);

            add(p2);

            add(p3);

 

            setBounds(300, 200, 300, 500);

            setVisible(true);

 

            tfL.addActionListener(this);

            tfR.addActionListener(this);

            btL.addActionListener(this);

            btLAll.addActionListener(this);

            btR.addActionListener(this);

            btRAll.addActionListener(this);

        }

 

        public static void main(String[] args) {

            new ListTest();

        }

 

 

        @Override

        public void actionPerformed(ActionEvent e) {

            Object ob = e.getSource();

            if(ob == tfL) {

                // 1.tfL의 값 get(유효성검사)

                String tmp = tfL.getText().trim();

                tfL.setText("");

                if (tmp.isEmpty())

                    return;

                // 2.listL에 추가

                listL.add(tmp);

 

            } else if(ob == tfR) {

                // 1.tfR의 값 get

                String tmp = tfR.getText().trim();

                tfR.setText("");

                if (tmp.isEmpty())

                    return;

                // 2.listR에 추가

                listR.add(tmp);

 

            } else if(ob == btL) {

                String tmp = listR.getSelectedItem();

                if (tmp == null)

                    return;

                listL.add(tmp);

                listR.remove(tmp);

 

            } else if(ob == btLAll) {

                // 1.listR에서 선택한 문자열 get(다중 가능)

                String tmp[] = listR.getSelectedItems();

                // 2.listL에 문자열들 추가

                int len = tmp.length;

                for (int i = 0; i < len; i++) {

                    listL.add(tmp[i]);

                }

                // 3.listR에 문자열들 삭제

                for (int i = 0; i < len; i++) {

                    listR.remove(tmp[i]);

                }

                // 4.아무것도 선택안하고 버튼 누를 경우 다 보냄.다삭제

                // if(tmp == null) {

                    // String tmpAll[] = listR.getItems();

                    // int lenAll = tmpAll.length;

                    // for (int i = 0; i < lenAll; i++) {

                        // listL.add(tmpAll[i]);

                    // }

                    // listR.removeAll();

                // }

 

 

        } else if(ob == btR) {

            // 1.listL에서 선택한 문자열 get(유효성검사)

            String tmp = listL.getSelectedItem();

            if (tmp==null) {

                return;

            }

            // 2.1의 값을 listR에 추가.

            listR.add(tmp);

            // 3.1의 값을 listL에서 제거.

            listL.remove(tmp);

 

            } else if(ob == btRAll) {

                // 1.listL의 값을 모두 get

                String tmp[] = listL.getItems();

                // 2.1의 값을 listR에 모두 추가

                int len = tmp.length;

                for (int i = 0; i < len; i++) {

                    listR.add(tmp[i]);

 

                }

                // 3.1의 값을 listL에서 모두 제거

                // for (int i=len-1;i>=0;i--) {  //밑에서 부터 지워야함.(위부터 하면 에러)

                     // listL.remove(i);

                // }

 

                listL.removeAll();   //간단히 removeAll 써도 됨

           }

      }

}


결과


ColorSelector

 

    package com.kitri.awt.event;

 

 

    import java.awt.*;

    import java.awt.event.AdjustmentEvent;

    import java.awt.event.AdjustmentListener;

 

 

    import javafx.geometry.HorizontalDirection;

 

 

    public class ColorSelector extends Frame implements AdjustmentListener{

 

        Panel p1 = new Panel();

        Panel p11 = new Panel();

        Panel p12 = new Panel();

        Panel p13 = new Panel();

        Panel p2 = new Panel();

        Panel p21 = new Panel();

 

        Label lR = new Label("빨강");

        Label lG = new Label("초록");

        Label lB = new Label("파랑");

        //0~255를 찍고 싶다면 막대 두께 10을 고려하여 0~265로 해야함

        Scrollbar sbR = new Scrollbar(Scrollbar.HORIZONTAL, 127, 10, 0, 265);

        Scrollbar sbG = new Scrollbar(Scrollbar.HORIZONTAL, 127, 10, 0, 265);

        Scrollbar sbB = new Scrollbar(Scrollbar.HORIZONTAL, 127, 10, 0, 265);

 

        Panel colorP = new Panel();

 

        Label colorL = new Label();

        Button ok = new Button("선택");

 

        public ColorSelector() {

            super("컬러셀렉터");

 

            p1.setLayout(new GridLayout(5, 1, 0, 20));

            p1.add(new Label());

            p1.add(p11);

            p1.add(p12);

            p1.add(p13);

            p11.setLayout(new BorderLayout(10, 0));

            p12.setLayout(new BorderLayout(10, 0));

            p13.setLayout(new BorderLayout(10, 0));

            lR.setBackground(Color.red);

            lG.setBackground(Color.green);

            lB.setBackground(Color.blue);

            p11.add(lR,"West");

            p11.add(sbR,"Center");

            p12.add(lG,"West");

            p12.add(sbG,"Center");

            p13.add(lB,"West");

            p13.add(sbB,"Center");

 

 

            p2.setLayout(new BorderLayout(0, 10));

            p2.add(colorP,"Center");

            p2.add(p21,"South");

 

            p21.setLayout(new BorderLayout(10, 0));

            p21.add(colorL,"Center");

            p21.add(ok,"East");

            colorL.setBackground(new Color(220,220,220));

 

            setLayout(new GridLayout(1, 2, 10, 0));

            add(p1);

            add(p2);      

 

            setBounds(300, 200, 500, 500);

            setVisible(true);

 

            sbR.addAdjustmentListener(this);

            sbG.addAdjustmentListener(this);

            sbB.addAdjustmentListener(this);

 

            changeColor();

        }

 

        public static void main(String[] args) {

            new ColorSelector();

        }

       

 

        @Override

        public void adjustmentValueChanged(AdjustmentEvent e) {

            changeColor();

        }

 

 

        private void changeColor() {

            int r = sbR.getValue();

            int g = sbG.getValue();

            int b = sbB.getValue();

            colorP.setBackground(new Color(r,g,b));

            colorL.setText("r = "+r+" g = "+g+" b = "+b);

        }

    }


결과

 

[출처] 빡쏘끼룩

 

반응형