Есть TextField и есть переменная, как счидать даные с TextField? Какой handler использовать или это делаться? Нигде не могу найти пример . В какую функию нужно вставлть handler . Знаю что нужно
double i = Double.perseDouble(text.getText());
Но где и как , с этим траблы. Буду очень благодарный
Хочу что бы Height, Weight задавал пользователь Код
Controller.java
package sample;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.paint.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class Controller implements ActionListener{
private static Color colorOfFigure;
private static int colorIndex, figureIndex;
private static double HEIGHT = 30;
private static int WEIGHT = 50;
@FXML
public static TextField height;
@FXML
private static TextField weight;
@FXML
private ComboBox<String> colorMenue;
@FXML
private ComboBox<String> figureMenue;
@FXML
private Canvas myCanvas;
GraphicsContext gc;
@FXML
Button go;
@FXML
public void printFigure() {
//COLOR MENUE
colorMenue.setOnAction(event -> {
colorIndex =
colorMenue.getSelectionModel().getSelectedIndex();
});
//FIGURES MENUE
figureMenue.setOnAction(event -> {
figureIndex = figureMenue.getSelectionModel().getSelectedIndex();
});
printFigure(figureIndex);
}
public Color switchColor(int i) {
switch (i) {
case 0:
colorOfFigure = Color.YELLOW;
break;
case 1:
colorOfFigure = Color.GREEN;
break;
case 2:
colorOfFigure = Color.BLACK;
break;
case 3:
colorOfFigure = Color.RED;
break;
case 4:
colorOfFigure = Color.BLUE;
break;
}
return colorOfFigure;
}
void printFigure(int figureIndex) {
gc = myCanvas.getGraphicsContext2D();
gc.setFill(switchColor(colorIndex));
gc.setStroke(switchColor(colorIndex));
switch (figureIndex) {
case 0:
gc.strokeLine(0, 0, 187, 160);
break;
case 1:
gc.fillRoundRect(110, 60, 30, 30, 10, 10);
break;
case 2:
gc.fillRect(187, 160, 100, 100);
break;
case 3:
gc.fillPolygon(new double[]{10, 30, 10},
new double[]{210, 210, 240, 240,}, 4);
case 4:
gc.fillOval(187, 160, 100, 100);
break;
}
}
@FXML
public void cleanCanvas() {
gc.setFill(Color.LAVENDER);
gc.fillRect(0, 0, myCanvas.getWidth(), myCanvas.getHeight());
}
@Override
public void actionPerformed(ActionEvent e) {
height.setOnKeyPressed(new EventHandler<javafx.scene.input.KeyEvent>() {
@Override
public void handle(javafx.scene.input.KeyEvent e) {
if(e.getCode() == KeyCode.ENTER){
System.out.println(height.getText());
}
}
});
}
}
Main.java
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
private Stage stage;
@Override
public void start(Stage stage) throws Exception{
this.stage = stage;
Parent root = FXMLLoader.load(getClass().getResource("printFiguresUI.fxml"));
stage.setTitle("Print Figure | by marchenko BIT1-15");
stage.setScene(new Scene(root, 700, 400));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
printFigureUI.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<?import javafx.scene.canvas.Canvas?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" prefHeight="400.0" prefWidth="700.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<Button layoutX="26.0" layoutY="306.0" mnemonicParsing="false" onAction="#printFigure" prefHeight="26.0" prefWidth="158.0" text="print" />
<ComboBox fx:id="figureMenue" layoutX="34.0" layoutY="52.0" prefWidth="150.0" promptText=" none">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Apple" />
<String fx:value="Orange" />
<String fx:value="Pear" />
<String fx:value="Triq" />
</FXCollections>
</items>
</ComboBox>
<Label layoutX="34.0" layoutY="26.0" text="Choose the figure" />
<ComboBox fx:id="colorMenue" layoutX="34.0" layoutY="135.0" prefWidth="150.0" promptText=" none">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Yellow" />
<String fx:value="Green" />
<String fx:value="Black" />
<String fx:value="Red" />
<String fx:value="Blue" />
</FXCollections>
</items>
</ComboBox>
<Label layoutX="34.0" layoutY="111.0" text="Choose the color" />
<Canvas fx:id="myCanvas" height="400.0" layoutX="209.0" layoutY="2.0" width="499.0" />
<Separator layoutX="206.0" layoutY="-11.0" orientation="VERTICAL" prefHeight="365.0" prefWidth="6.0" />
<Label layoutX="71.0" layoutY="164.0" text="figure's size" />
<Button layoutX="26.0" layoutY="341.0" mnemonicParsing="false" onAction="#cleanCanvas" prefHeight="25.0" prefWidth="158.0" text="clean" textFill="#f20000" />
<TextField layoutX="32.0" layoutY="188.0" prefHeight="26.0" prefWidth="69.0" text="HEIGHT" />
<TextField layoutX="115.0" layoutY="188.0" prefHeight="26.0" prefWidth="69.0" text="WEIGHT" />
<TextField alignment="CENTER" layoutX="30.0" layoutY="257.0" prefHeight="26.0" prefWidth="69.0" text="X" />
<TextField alignment="CENTER" layoutX="118.0" layoutY="256.0" prefHeight="26.0" prefWidth="69.0" text="Y" />
<Label layoutX="50.0" layoutY="235.0" text="figure's position" />
</children>
</AnchorPane>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Почему появляется эта ошибка, если файл существует?
Помогите, пожалуйста, что-то всю голову сломал, без текста получается все ровно, но если добавить текст в блок, то ерунда полнаяИмеется следующая...
Здравствуйте, собираюсь разрабатывать большой web проект городской, с большим количеством функционала, но на первой стадии буду делать только...