자바 이벤트 처리기 질문드립니다.. 왜 안되는 걸까요?ㅜㅜㅜ

조회수 2147회
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class MyFrame extends JFrame{//프레임 클래스
    private JButton b1;
    private JPanel panel;
    private JLabel label;
    private JTextField t1;

    private JTextField resultTextField;
    public MyFrame(){
        setSize(600,500); //프레임 크기 조정
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("♥Guess my 이니셜♥");
        panel = new JPanel();
        panel.setLayout(null);

        label = new JLabel("①  내 이니셜 입력하시오.");
        t1 = new JTextField(5); //마일 단위의 거리를 담을 텍스트필드
        b1 = new JButton("입력");
        b1.setBackground(Color.ORANGE); //버튼의 색을 주황색으로 변경


        resultTextField = new JTextField(30); //마일을 킬로미터로 변환시킨 결과값을 당을 텍스트필드

        b1.addActionListener(new MyListener()); //버튼에 이벤트 발생객체 생성
        label.setBounds(10, 10, 300, 70); 
        t1.setBounds(320, 25, 100, 30);
        b1.setBounds(430, 22, 70, 35);



        resultTextField.setBounds(55, 109, 200, 30); //알맞은 위치에 기능들 배치

        panel.add(label,BorderLayout.LINE_START);
        panel.add(t1,BorderLayout.LINE_START);
        panel.add(b1,BorderLayout.CENTER);

        panel.add(resultTextField,BorderLayout.CENTER); //패널에 기능 추가



        add(panel);
        setVisible(true);

    }
    private class MyListener implements ActionListener{
        public void actionPerformed(ActionEvent e){

            if( e.getSource() == b1){
                resultTextField.setText("");
                String name = t1.getText(); //텍스트필드의 값을 문자열 name에 넣어줌
                final String  myName = "KJW";

                System.out.println(name);
                System.out.println(myName);

                if(name != myName )
                    resultTextField.setText("KJW아니야?ㅜㅜㅜ");
                else
                    resultTextField.setText("맞았어!");
            }

        }
    }

}


public class ActionEventListener{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyFrame f = new MyFrame();

    }

}



이 코드는 제 이니셜(KJW)를 입력하고 버튼을 눌렀을 때에 맞았다는 메시지가 텍스트 필드에 뜨는 프로그램으로 만들었는데요!! 분명히 제가 KJW라고 입력했는데도 불구하고 KJW라고 입력하지 않았다고 뜨는데 도대체 왜 그러는 것일까요??

if(name != myName ) resultTextField.setText("KJW아니야?ㅜㅜㅜ"); else resultTextField.setText("맞았어!");

이 부분이 잘못된건가요..? 답변 꼭 부탁드립니다. 궁금해서 죽을 것 같습니다..ㅎㅎㅎ 부탁드립니다 자바 고수님들!!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)