Так что я вызываю метод makeCard (String info) из другого класса. Он работает нормально при первом запуске, но во второй раз я вызываю метод, который, кажется, запускается дважды, что создает ошибку выполнения StringIndexOutOfBoundsException, и я не могу понять, почему. Я немного новичок в Java, поэтому я могу пропустить что-то очевидное, но логика в моей голове говорит, что он должен запускаться только один раз, если вызван один раз. Надеюсь, кто-то может указать на мою ошибку.Мой метод работает дважды, когда он вызывается только один раз
Вот метод:
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: Индекс строки за пределами допустимого диапазона: 0
Может ли вы отправить сообщение об ошибке? – FaddishWorm
Исключение в потоке "АВТ-EventQueue-0" java.lang.StringIndexOutOfBoundsException: индекс строки из диапазона: 0 \t в java.lang.StringBuffer.charAt (Unknown Source) \t в CardBreakdown.makeCard (CardBreakdown.java:24) \t в EnterCard.actionPerformed (EnterCard.java:62) \t в javax.swing.AbstractButton.fireActionPerformed (Unknown Source) \t в javax.swing.AbstractButton $ Handler.actionPerformed (Unknown Source) \t в javax.swing .DefaultButtonModel.fireActionPerformed (Неизвестный источник) – mig
Я бы не использовал StringBuffer, никогда. Я бы использовал 'info.trim()', который будет делать то, что вы хотите. –