IT-개발자 2018. 6. 21. 16:57
반응형

앞의 강의에서 equals에 대해서 확인하였습니다. 그렇다면 다음 예제를 통하여 equals에 대해서 알아보도록 하겠습니다.


import java.awt.GridLayout;

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;

import javax.swing.JTextField;

 

public class T3 extends JFrame implements ActionListener {

 

        JPanel p1 = new JPanel();

        JButton b1 = new JButton("123");

        JButton b2 = new JButton("1234");

        String str=new String("123");

        JLabel l1 = new JLabel(str);

        JTextField t1 = new JTextField();

 

        public T3() {

               p1.setLayout(new GridLayout(2, 2));

               add(p1);

               p1.add(l1);

               p1.add(t1);

 

               b1.addActionListener(this);

               b2.addActionListener(this);

 

               p1.add(b1);

               p1.add(b2);

 

               // ------------------------------------------------

               setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

               // 프레임의 x버튼을 활성화하여 닫기버튼이 실행가능해짐

               setSize(500, 500); // 프레임 사이즈 지정

               setVisible(true); // 프레임을 보이게

               setLocationRelativeTo(null); // 프레임 실행시 위치 중앙

        }

 

        @Override

        public void actionPerformed(ActionEvent e) {

               String a = e.getActionCommand();

              

               if (a.equals(l1.getText())) {

                       t1.setText("같음");

               } else

 

                       t1.setText("다름");

        }

 

        public static void main(String args[]) {

               T3 test = new T3();

        }

}


<결과물>


 123버튼과 l1 123의 비교


 1234버튼과 l1 1234의 비교


만약, addActionListener의 클래스안에 equals가 아니라 ==연산자를 사용하면 어떻게 될까요?

 import java.awt.GridLayout;

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;

import javax.swing.JTextField;

 

public class T3 extends JFrame implements ActionListener {

 

        JPanel p1 = new JPanel();

        JButton b1 = new JButton("123");

        JButton b2 = new JButton("1234");

        String str=new String("123");

        JLabel l1 = new JLabel(str);

        JTextField t1 = new JTextField();

 

        public T3() {

               p1.setLayout(new GridLayout(2, 2));

               add(p1);

               p1.add(l1);

               p1.add(t1);

 

               b1.addActionListener(this);

               b2.addActionListener(this);

 

               p1.add(b1);

               p1.add(b2);

 

               // ------------------------------------------------

               setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

               // 프레임의 x버튼을 활성화하여 닫기버튼이 실행가능해짐

               setSize(500, 500); // 프레임 사이즈 지정

               setVisible(true); // 프레임을 보이게

               setLocationRelativeTo(null); // 프레임 실행시 위치 중앙

        }

 

        @Override

        public void actionPerformed(ActionEvent e) {

               String a = e.getActionCommand();

              

               if (a==l1.getText()) {

                       t1.setText("같음");

               } else

 

                       t1.setText("다름");

        }

 

        public static void main(String args[]) {

               T3 test = new T3();

        }

}


<결과물>

123버튼과 l1 123의 비교

 

 1234버튼과 l1 1234의 비교


자료가 마음에 드셨다면 자주 찾아주세요^^ 글 올리는데 힘이됩니다.

반응형