我有組合框,我想用它來配置服務延遲時間:設置自定義值,組合框
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class MainApp extends Application
{
public static void main(String[] args)
{
launch(args);
}
private MyService myService = new MyService();
@Override
public void start(Stage stage)
{
myService.setDelay(new Duration(300));
myService.setPeriod(new Duration(1000));
myService.start();
stage.setTitle("ComboBoxSample");
Scene scene = new Scene(new Group(), 450, 250);
ComboBox emailComboBox = new ComboBox();
emailComboBox.getItems().addAll("Stop", "1 Second", "5 Seconds", "10 Seconds", "15 Seconds");
emailComboBox.setPromptText("Email address");
emailComboBox.valueProperty().addListener(new ChangeListener<String>()
{
@Override
public void changed(ObservableValue ov, String t, String t1)
{
if (t1.equals("Stop"))
{
myService.cancel();
}
if (t1.equals("1 Second"))
{
myService.setPeriod(new Duration(1000));
}
if (t1.equals("5 Second"))
{
myService.setPeriod(new Duration(5000));
}
if (t1.equals("10 Second"))
{
myService.setPeriod(new Duration(10000));
}
if (t1.equals("15 Second"))
{
myService.setPeriod(new Duration(15000));
}
}
});
GridPane grid = new GridPane();
grid.setVgap(4);
grid.setHgap(10);
grid.setPadding(new Insets(5, 5, 5, 5));
grid.add(new Label("To: "), 0, 0);
grid.add(emailComboBox, 1, 0);
Group root = (Group) scene.getRoot();
root.getChildren().add(grid);
stage.setScene(scene);
stage.show();
}
}
有沒有減少,我用它來設置服務太多,如果()開關的情況下任何取巧的方法延遲期。 我想添加emailComboBox.setEditable(true);
並基於我的自定義輸入我想設置服務延遲期。
如果格式將是'XX秒'然後你可以簡單地在空間上使用String Tokenize來獲得第一個數字,使用'Integer.parseInt()'把它作爲'int'獲得,然後乘以1000毫秒。如果它無法解析爲具有異常的int,則假定它是'停止'或輸入錯誤並調用'cancel()'。 –
@AaronD你能告訴我一些代碼示例嗎? –
似乎真的不應該在'ComboBox'中首先使用'String's ...... –