그래서 다른 클래스의 makeCard (String info) 메서드를 호출하고 있습니다. 그것은 처음에는 통과하지만, 두 번 실행하면 StringIndexOutOfBoundsException 런타임 오류를 발생시키는 두 번 실행되는 것으로 보이는 두 번째 시간에는 문제가없는 것으로 보입니다. 자바에 익숙하지 않아 뭔가 명백한 것을 놓치고 있을지 모르지만 내 머리 속에있는 논리는 한 번 호출하면 한 번만 실행해야한다고 말합니다. 바라건대 누군가 내 실수를 지적 할 수 있습니다. 여기 한 번만 호출하면 내 메서드가 두 번 실행됩니다.
은 방법 :public void makeCard(String info){
cInfo = new StringBuffer(info);
int i = 0;
while(cInfo.charAt(i)== ' '){
cInfo.deleteCharAt(i);
}
while(cInfo.charAt(cInfo.length()-1)== ' '){
cInfo.deleteCharAt(cInfo.length()-1);
i--;
}
seperateValues();
makeObject();
}
여기가 호출되는 경우입니다 :
@Override
public void actionPerformed(ActionEvent e) {
MainWindow mw = new MainWindow();
CardBreakdown cb = new CardBreakdown();
if("submit".equals(e.getActionCommand())){
cb.makeCard(cardInfo.getText());
mw.removeAddPanel();
cardInfo.setText("");
}
}
는 사전에 어떤 도움을 주셔서 감사합니다 당신이
를 제공 할 수있는이 오류입니다 : "AWT-EventQueue-0"스레드의 예외 java.lang.StringIndexOutOfBoundsException : 문자열 인덱스가 범위를 벗어남 :
정확한 에러 메시지를 게시 할 수 있습니까? – FaddishWorm
예외 글 "AWT-EventQueue의-0"java.lang.StringIndexOutOfBoundsException : 범위 밖으로 문자열 인덱스 : 0에서 java.lang.StringBuffer.charAt \t (알 소스)에 CardBreakdown.makeCard \t (CardBreakdown.java:24) EnterCard.actionPerformed (EnterCard.java:62)에서 \t javax.swing.AbstractButton $ Handler.actionPerformed (알 수없는 소스)에서 javax.swing.AbstractButton.fireActionPerformed (알 수없는 소스) \t에서 \t있는 javax.swing에서 \t .DefaultButtonModel.fireActionPerformed (Unknown Source) – mig
나는 StringBuffer를 사용하지 않을 것이다. 나는 당신이 원하는 것을 할'info.trim()'을 사용할 것이다. –