Это было домашнее задание, которое у меня было ранее. Как и я, я сделал все, что мог, и повернулся в том, что у меня было, и что получил оценку. Мое задание состояло в том, чтобы создать графический интерфейс, который позволил бы вам выбрать, какой тип транспортного средства у вас был (компактный, средний, роскошный, suv), поскольку он определял размер вашего газового бака, какой тип газа вы хотели использовать (супер неэтилированный, неэтилированный, свинцовый, дизельный), поскольку это определяло цену за галлон и расстояние, которое вы хотели путешествовать. Затем он подсчитал, сколько это будет стоить. У меня есть алгоритм для вычисления всего этого, но мой класс учил Swing, который не имеет для меня никакого смысла, и я решил попробовать переделать это с помощью JavaFX. Моя проблема в том, что я не могу заставить проект компилироваться, поскольку есть проблема с конструктором, и я не знаю, как его получить, поэтому он использует метод calculate() при нажатии кнопки расчета. Я не очень беспокоился о макете программы на данный момент, потому что я не вижу этого. Я позабочусь об этом позже. Любой, кто может мне помочь? Как я уже сказал, это было старое домашнее задание, которое уже было оценено, я просто хотел попробовать javaFx вместо Swing.Javafx не отображается
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.text.*;
/**
* Created with IntelliJ IDEA.
* User: Zane Erickson
* Date: 11/16/13
* Time: 8:27 PM
* Purpose: Be able to enter estimated miles to drive, gas type, and car type into the GUI to get an estimated cost for travel.
*/
public class TGC extends ButtonBase {
private boolean clearText;
private double totalCost;
private final double SUPERUNLEADED = 3.00;
private final double UNLEADED = 2.90;
private final double LEADED = 2.50;
private final double DIESEL = 4.00;
private final double OILCHANGEPRICE = 30.00;
private final int COMPACT = 13;
private final int MIDSIZE = 18;
private final int LUXURY = 15;
private final int SUV = 23;
private final int OILCHANGEDISTANCE = 3000;
private final int MPG = 15;
public TGC()
{
BorderPane border = new BorderPane();
HBox hTitle = addHBox();
border.setTop(hTitle);
border.setLeft(addVBox());
border.setCenter(addGridPane());
//border.setRight(addFlowPane());
}
@Override
public void fire() {
calculate();
}
public HBox addHBox()
{
HBox hTitle = new HBox();
hTitle.setPadding(new Insets(15,12,15,12));
hTitle.setSpacing(10);
hTitle.setStyle("-fx-background-color: #336699;");
//Add buttons
Button buttonCalculate = new Button("Calculate");
buttonCalculate.setPrefSize(100,20);
Button buttonReset = new Button("Reset");
buttonReset.setPrefSize(100,20);
//Add the title
Text txtTitle = new Text("TGC");
txtTitle.setFont(Font.font("Arial", FontWeight.BOLD, 20));
//Add labels
Label lblEGasCost = new Label("Estimated Gas Cost: $");
Label lblEOilCost = new Label("Estimated Oil Cost: $");
Label lblETotalCost = new Label("Estimated Total Cost: $");
//Add textFields
final TextField txfDistance = new TextField();
//Set lblTitle to top of pane
hTitle.getChildren().addAll(txtTitle);
buttonCalculate.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
double oilTemp = (Integer.valueOf(txfDistance.getText()) % OILCHANGEDISTANCE) * OILCHANGEPRICE;
/*
if(== "Compact")
{
if(arg2 == "Super Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * COMPACT) * SUPERUNLEADED) + oilTemp;
}
else if(arg2 == "Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * COMPACT) * UNLEADED) + oilTemp;
}
else if(arg2 == "Leaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * COMPACT) * LEADED) + oilTemp;
}
else if (arg2 == "Diesel")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * COMPACT) * DIESEL) + oilTemp;
}
else
{
}
}
else if(arg == "Mid-Size")
{
if(arg2 == "Super Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * MIDSIZE) * SUPERUNLEADED) + oilTemp;
}
else if(arg2 == "Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * MIDSIZE) * UNLEADED) + oilTemp;
}
else if(arg2 == "Leaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * MIDSIZE) * LEADED) + oilTemp;
}
else if (arg2 == "Diesel")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * MIDSIZE) * DIESEL) + oilTemp;
}
else
{
}
}
else if(arg == "Luxury")
{
if(arg2 == "Super Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * LUXURY) * SUPERUNLEADED) + oilTemp;
}
else if(arg2 == "Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * LUXURY) * UNLEADED) + oilTemp;
}
else if(arg2 == "Leaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * LUXURY) * LEADED) + oilTemp;
}
else if (arg2 == "Diesel")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * LUXURY) * DIESEL) + oilTemp;
}
else
{
}
}
else if(arg == "SUV")
{
if(arg2 == "Super Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * SUV) * SUPERUNLEADED) + oilTemp;
}
else if(arg2 == "Unleaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * SUV) * UNLEADED) + oilTemp;
}
else if(arg2 == "Leaded")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * SUV) * LEADED) + oilTemp;
}
else if (arg2 == "Diesel")
{
totalCost = ((Integer.valueOf(txfDistance.getText()))/(MPG * SUV) * DIESEL) + oilTemp;
}
else
{
}
}
else
{
}
totalPrice.setText((String.valueOf(totalCost)));
*/
}
});
buttonReset.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
reset();
}
});
return hTitle;
}
public VBox addVBox()
{
VBox vbox = new VBox();
vbox.setPadding(new Insets(10));
vbox.setSpacing(8);
ChoiceBox chbCarType = new ChoiceBox();
chbCarType.setItems(FXCollections.observableArrayList("Compact", "Mid-Size", "Luxury", "SUV"));
chbCarType.setTooltip(new Tooltip("Select Vechicle Type"));
ChoiceBox chbGasType = new ChoiceBox();
chbGasType.setItems(FXCollections.observableArrayList("Super Unleaded", "Unleaded", "Leaded", "Diesel"));
chbGasType.setTooltip(new Tooltip("Select Fuel Type"));
vbox.getChildren().addAll(chbCarType, chbGasType);
return vbox;
}
public GridPane addGridPane()
{
GridPane grid = new GridPane();
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(0,10,0,10));
return grid;
}
public void calculate()
{
//code is currently in buttonCalculate.setOnAction()
}
public void reset()
{
clearText = true;
}
}
/////////////////////////End of Class////////////////////////////
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args)
{
SplashScreen.createSplashScreen(); //call createSplashScreen in the SplashScreen class
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("TGC");
TGC f = new TGC(); //not sure how to use f so that I call TGC properly
Group root = new Group();
Scene scene = new Scene(root, 800, 600, Color.BLACK);
stage.setScene(scene);
stage.show();
}
}
JavaFX обеспечивает FXML, которые являются дизайном для управления и использовать его ... Вы можете использовать контроллер файл его легко добросовестный ... попробуйте http://stackoverflow.com/questions/19523341/adding-a-tilepane-instantiated-in-java-files-to-fxml –
Какая строка не компилируется и что такое сообщение об ошибке? –