Witam,
Poniżej przedstawiam kod swojej klasy, w której mam pole tekstowe i przycisk. Chcę teraz kompiować to, co użytkowanik wpisze w polu tekstowym i wkleić tam jeszcz raz, ale zależy mi na tym, żeby to co wpisze użytkowanik mieć porozdzielane jako osobne napisy, gdzie separatorem jest średnik. Mój problem polega na tym, że program po wciśnięciu przycisku się zapętla i nie działa.
Bardzo proszę o pomoc.
package com.example.example;
import java.util.Vector;
import com.vaadin.Application;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.Window;
@SuppressWarnings("serial")
public class ExampleApplication extends Application {
private TextArea textWithOperations;
private Button buttonModify;
private Vector<String> commandsAsString = new Vector<String>();
private Window mainWindow;
@Override
public void init() {
mainWindow = new Window("Example Application", buildmainlayout());
Label label = new Label("Hello Vaadin user");
mainWindow.addComponent(label);
setMainWindow(mainWindow);
}
public HorizontalLayout buildmainlayout() {
HorizontalLayout mainlayout = new HorizontalLayout();
textWithOperations = new TextArea();
mainlayout.addComponent(textWithOperations);
buttonModify = new Button("Ok");
buttonModify.addListener(new Button.ClickListener() {
@Override
public void buttonClick(final ClickEvent event) {
checking();
}
});
mainlayout.addComponent(buttonModify);
return mainlayout;
}
private void checking() {
String operationsToExecute = textWithOperations.getValue().toString();
int indexOfBegin = 0;
int indexOfEnd = operationsToExecute.indexOf(';', indexOfBegin);
while (indexOfEnd != -1) {
commandsAsString.addElement(operationsToExecute.substring(
indexOfBegin, indexOfEnd));
indexOfBegin = indexOfEnd;
indexOfEnd = operationsToExecute.indexOf(';', indexOfBegin);
}
for (int i = 0; i < commandsAsString.size(); i++) {
textWithOperations.setValue(textWithOperations.getValue()
+ commandsAsString.elementAt(i));
}
}
}