Avatar
Tomhaus
Člen
Avatar
Tomhaus:

Cs, dělam poprvý v JavaFX (mam několik projektů jen ve swingu) a narazil jsem na jeden problém.
Celej projekt máte uploadovanej :) a nevšímejte si komentářů(jsou to jen testy :D)
Když do první hodnoty zadám číslo 1 a zmáčknu tlačítko "vypočítat" (název souvisí s budoucí funkcí :D) , tak se správně neprovede podmínka definovaná v metodě, kterou volá tlačítko. A když jsem pro otestování chyby prohodil v podmínce "==" za "!=", tak jsem na to ještě víc zíral, protože vyhazovalo to i to na co je tahle podmínka dělaná.
Tak vážně už nevim, pls koukněte na to a prosím o radu.

Odpovědět 23.2.2015 22:49
Být lepší a chytřejší je důležité, ale někdy se musíme spokojit s tím, co máme.
Avatar
Tomhaus
Člen
Avatar
Tomhaus:

jak tak koukam tak se nic nenahrálo, tak jsou celý stránky kódu na mým seznamu kódů (jsou to všechny tři: main, code, view)

Nahoru Odpovědět 23.2.2015 23:00
Být lepší a chytřejší je důležité, ale někdy se musíme spokojit s tím, co máme.
Avatar
Tomhaus
Člen
Avatar
Tomhaus:

tak znova dávam kódy přímo sem
hlavní třída:

package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;


public class Main extends Application {
        @Override
        public void start(Stage primaryStage) {
                try {
                        Parent root = FXMLLoader.load(getClass().getResource("/application/View.fxml"));
                        Scene scene = new Scene(root);
                        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
                        primaryStage.setScene(scene);
                        primaryStage.show();
                } catch(Exception e) {
                        e.printStackTrace();
                }
        }

        public static void main(String[] args) {
                launch(args);
        }
}

controller pro anchorPane:

package code;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;

public class code implements Initializable {
        @FXML
        private TextField txt01, txt02;
        @FXML
        private ComboBox<String> box01, box02, box03;
        @FXML
        private Button btn01;
        @FXML
        private Label lab01;

        @Override
        public void initialize(URL location, ResourceBundle resources) {
                setBoxes();
        }
        /*
        public void errorMessage(int error){
                String errorString = "";
                if(error == 1){
                        errorString = "Prázdné hodnoty";
                        lab01.setText(errorString);
                        error = 0;
                }
        }*/

        public void setBoxes() {
                // operace
                ObservableList<String> list01 = FXCollections.observableArrayList("+", "-", "*", "/");
                box01.setItems(list01);
                box01.getSelectionModel().selectFirst();

                // první a druhá číselná soustava
                ObservableList<String> list0203 = FXCollections.observableArrayList("2", "8", "10", "16");
                box02.setItems(list0203);
                box03.setItems(list0203);
                box02.getSelectionModel().select(2);
                box03.getSelectionModel().select(2);


        }

        public void calcul(ActionEvent event) {
                String model02 = box02.getSelectionModel().getSelectedItem();
                String model03 = box03.getSelectionModel().getSelectedItem();
                String text01 = txt01.getText().toString();
                String text02 = txt02.getText().toString();
                System.out.println("Formát 1: " + model02 + ", hodnota je: " + text01 + "\nFormát 2: " + model03 + ", hodnota je: " + text02);

                if(text01 == "1"){
                        System.out.println(text01);
                }
        }

        public void convert10(String value) {

        }
}

view.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane prefHeight="175.0" prefWidth="244.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="code.code">
   <children>
      <TextField fx:id="txt01" layoutX="14.0" layoutY="14.0" />
      <TextField fx:id="txt02" layoutX="14.0" layoutY="78.0" />
      <ComboBox fx:id="box01" layoutX="63.0" layoutY="46.0" prefHeight="25.0" prefWidth="52.0" />
      <ComboBox fx:id="box02" layoutX="174.0" layoutY="14.0" prefHeight="25.0" prefWidth="56.0" />
      <ComboBox fx:id="box03" layoutX="174.0" layoutY="78.0" prefHeight="25.0" prefWidth="56.0" />
      <Button fx:id="btn01" layoutX="56.0" layoutY="110.0" mnemonicParsing="false" onAction="#calcul" text="Vypočítej" />
      <Label fx:id="lab01" alignment="CENTER" layoutX="15.0" layoutY="144.0" prefWidth="149.0" />
   </children>
</AnchorPane>
Nahoru Odpovědět 24.2.2015 8:39
Být lepší a chytřejší je důležité, ale někdy se musíme spokojit s tím, co máme.
Avatar
Atrament
Člen
Avatar
Atrament:

Stringy se v Javě porovnávají pomocí metody equals()

if(text01.equals("1")){
  System.out.println(text01);
}
 
Nahoru Odpovědět  +1 24.2.2015 10:12
Avatar
Atrament
Člen
Avatar
Odpovídá na Tomhaus
Atrament:

Stringy se v Javě porovnávají pomocí metody equals()

if(text01.equals("1")){
  System.out.println(text01);
}

(Dávám to sem ještě jednou, protože jsem zase zapoměl na 'Odpovědět' :) Nějak na to poslední dobou furt zapomínám :) )

 
Nahoru Odpovědět 24.2.2015 10:14
Avatar
Tomhaus
Člen
Avatar
Odpovídá na Atrament
Tomhaus:

Diky po škole skusim aplikovat.

Nahoru Odpovědět 24.2.2015 11:54
Být lepší a chytřejší je důležité, ale někdy se musíme spokojit s tím, co máme.
Avatar
Tomhaus
Člen
Avatar
Odpovídá na Atrament
Tomhaus:

a není ještě něco jako notequals nebo mam používat tohle?

if(text01.equals("1")){
}else{
nejakaMetoda();
}
Nahoru Odpovědět 24.2.2015 21:11
Být lepší a chytřejší je důležité, ale někdy se musíme spokojit s tím, co máme.
Avatar
Atrament
Člen
Avatar
Odpovídá na Tomhaus
Atrament:

Je, vykřičník :)

if (!text01.equals("1"))
{
  //tento blok se provede, když text01 není 1
}
 
Nahoru Odpovědět 25.2.2015 0:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.