In: Computer Science
Write a JavaFX application that presents two buttons and a number (initially 50) to the user. Label the buttons Increment and Decrement. When the increment button is pushed, increment the displayed value. Likewise, decrement the value when the decrement button is pushed.
This has to use Java.Fx and not Java.Awt
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class KnittingCounterApp extends Application{
private String [] stitchNames = {"Blackberry Stitch","Pennant
Sticht","Andalusian Stitch"};
private String [] blackBerryRows = {"*(knit in the front, then
back, then front again of the same stich, purl 3), repeat from *
until end of the row"
,"*(purl 3 together, knit 3) repeat from * until the end of the
row"
,"*(purl 3, knit in the front, then back, then front again of the
same stitch), repeat from * until end of row"
,"*(knit 3, purl together 3), repeat until the end of the
row"};
private String [] pennantRows = {"knit"
,"purl 1, *(knit 1, purl 4) repeat from * until the last stitch,
purl 1"
,"knit 1, *(knit 3, purl 2) repeat from * until the last stitch,
knit 1"
,"knit 1, *(knit 3, purl 2) repeat from * until the last stitch,
knit 1"};
private String [] andalusianRows = {"knit"
,"purl"
,"knit 1, purl 1 repeast until the end of the row"
,"purl"};
//int rowCounter = 0;
//private String [] allRows = {blackBerryRows, pennantRows, andalusianRows};
protected Text text = new Text();
private ComboBox<String> stitchBox = new
ComboBox<>();
@Override
public void start(Stage primaryStage) {
Label stitchLabel = new Label("Select Stich: ");
RadioButton blackBerry = new RadioButton("Blackberry");
RadioButton pennant = new RadioButton("Pennant");
RadioButton andalusian = new RadioButton("Andalusian");
blackBerry.setSelected(true);
ToggleGroup stitchGroup = new ToggleGroup();
blackBerry.setToggleGroup(stitchGroup);
pennant.setToggleGroup(stitchGroup);
andalusian.setToggleGroup(stitchGroup);
VBox stitchBox = new VBox(stitchLabel, blackBerry,
pennant,andalusian);
stitchBox.setSpacing(10);
Button plusButton = new Button("+");
Button minusButton = new Button("-");
HBox buttons = new HBox(20);
buttons.getChildren().addAll(plusButton,minusButton);
Label test = new Label();
TextArea ta = new TextArea();
AtomicInteger rowCounter = new AtomicInteger(0);
plusButton.setOnAction(e -> {
rowCounter = (rowCounter+1) % 4; // alternative using modulo
here
ta.setText(Integer.toString(rowCounter));
});
minusButton.setOnAction(e -> {
rowCounter = (rowCounter + 3) % 4; // alternative using
modulo
ta.setText(Integer.toString(rowCounter));
});
VBox buttonBox = new VBox(10);
buttonBox.getChildren().addAll(buttons,ta);
BorderPane pane = new BorderPane();
pane.setCenter(buttonBox);
pane.setLeft(stitchBox);
Scene scene = new Scene(pane, 550, 350);
primaryStage.setTitle("Knit Baby Blanket Counter");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Note: Plzzz don' t give dislike.....Plzzz comment if u have any problem i will try to resolve it.......