티스토리 뷰

목차


    반응형

    버튼의 이름 바꾸는 방법. (버튼 이름 바꾸기)

    버튼 이름을 바꾸고 싶었는데, 어떤게 버튼 이름에 대한건지 몰라서 많이 허덕였다.- -;;

    그 전에, 몇가지만 알아보자. 자바에서 그래픽쪽 관련된게, 기본(awt) 과 J가 붙은 것(swing)들이 있다.

    사실 큰 차이는 잘 못느끼고, awt로 만든 경우 해당 프로그램을 보는 컴퓨터의 O/S에 따라 화면이 조금씩 달라지게되는데
    Swing으로 작성한 경우 통일 시켜서 어떤 O/S 에서든 동일한 화면을 보여준다고 한다.

    버튼 할꺼니까, 버튼만 살짝 비교하면서 보자.



    이게 awt 의 Button을 사용하는 모습. import에서 awt의 Button을 하고 있다.


    버튼의 이름이 찾는데 고생을 좀 했는데. 눈에 띄는게 getName()이라 해봤더니 다른게 나왔다 - -;;
    내가 생각하는 Name의 기준과 자바에서의 기준이 다른듯 싶다.

    그리고 배운게 getActionCommand(). 내가 입력한 이름이 잘 나온다.
    보니까 액션 이벤트에서도 이놈을 사용하고 있었다.
    e.getActionCommand()   아마 액션리스너에서 종종 볼 수 있을 것이다.

    문제는. 이놈을 내가 원하는 내용을 잘 뽑아 내길래 당연히 set을 이용해서 바꿨다.
    setActionCommand()가 있음에도 에러도 아니고 아무 이상없이 잘 돌아가지만 변경되진 않았다..- -;

    그래서 setLabel()을 사용했더니 잘 바뀌었다.
    버튼에 보이는 이름은 Label 이다.


    ActionCommand는 단지 같은 값을 가지고 있었을 뿐. - -;


    추가적인 내용.

    Label 을 변경하면 getActionCommand() 값도 같이 변경된다. 위의 내용을 봤을 때 당연한거 같지만
    중요한 사실이 있다. setActionComman()의 값을 변경한다 해도, Label의 값이 변경되진 않는다.

    Label 변경시. Label과 ActionCommand의 값이 모두 변경.
    Action변경시. ActionCommand만 값이 변경.

    게다가, setActionCommand로 값을 한번 설정하면, 그 이후로는 Label을 변경해도
    ActionCommand의 값이 변경되지 않는다. 설정된 값이 없는 경우 Label의 값을 사용하고,
    설정이 되면 Label의 값 보다 설정된 값이 우선 시 되는 것 같다.

    사실, ActionCommand가 정확히 어떤 동작을 하거나, 무엇인지에 대해 몰라서 발생하는 내용이긴 하다.






    JButton을 사용한 모습. import에서 javax 이며 swing의 Button을 가져오고 있다.


    awt와 별 차이는 없었지만, 몇가지 추가적인 것들이 있는거 같다.
    눈에 띄는 하나만 더 추가했는데. getText가 있다. label과 같은 기능을 하고 있으며,
    그림에서 보이듯이 getLabel에 이상한 줄으 그어져 있는데, 실행이 되긴 한다.

    다만, Text를 주로 이용해야 하는 것 같다.
    반응형