[질문] JButton...문제...
가시
public void actionPerformed(ActionEvent e){
double value1, value2;
value1= new Double(input1TextField.getText()).doubleValue();
value2= new Double(input2TextField.getText()).doubleValue();
Button bt = (Button)e.getSource() ; == error....
String s = bt.getLabel();
if(s.equals(+))
answerLabel.setText(+(value1+value2));
if(s.equals(-))
answerLabel.setText(+(value1-value2));
if(s.equals(*))
answerLabel.setText(+(value1*value2));
if(s.equals(/))
answerLabel.setText(+(value1/value2));
}
제가 생성자에서 JButton으로 버튼을 만들었는데... 액션 퍼폼드안에서 그 버튼의 라벨의 +, -,.. 등.. 이것들을
Button bt = (Button)e.getSource() ; 이 라인으로 이벤트 일어나는 버튼의 소스를 가져다 Button bt을 만들고
그것의 라벨을 얻어 비교하여 연산하려하는데... 저 파란 위치에서 에러가 나네요...
생성자의 버튼을 JButton 에서Button으로 바꾸면 잘 되는데.... 말입니다..ㅡ.ㅡ.....JButton은 따로 바꿀 수 있는 메소드가 있나요? 어떻게 해결해야 할까요?...
도와주세요..ㅜㅜ.. 흑흑....그럼 좋은하루 되세요~~~^^
-
개굴츼
좋은 답변 감사합니다^^
-
귀1여운렩
아 -_- 글구보니 -_- JButton 객체를 만들고. Button 클래스형으로 캐스팅하는군요.. -_-;;;;;;;;;;;;;;;;;;;;;;;;
당연히 안됩니다. -_- JButton 의 부모 클래스 중에서 Button 이 있으면 가능하겠지만..
저건 당연히 안되지요... 폴리모피즘 ( 다형성 ) 에 대해서 좀 더 보실 필요가 있다고 생각 됩니다. ^_^
그리고 Button 에서 지원하는 거의 모든 기능은 JButton도 가지고 있습니다. 그냥 -
루라
어떤 에러가 나는지 말씀해 주시면 더 좋을텐데 -_-;;
혹시나 action Performed 에 들어 오는 이벤트 e 에서 getSource() 하면.. 버튼 말고,
다른 객체가 나오는것 아닌가요? -_-? 제가 보기에는 단순 캐스팅 문제인것 같은데..
e.getSource() 했을때... 실제로 튀어나오는 source 가 Button 관련 객체가 아니라면..
ClassCastException 이 발생할것 같기도 합니다.
actionPerformed -
Judicious
JButton과 Button 을 저런 식으로 캐스팅 하는 이유가 무엇인가요? 그럴 필요가 없어보이는데...
그냥 처음 생성했던 타입으로 캐스팅하면 아무 문제 없을듯한데요.