Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Tomhaus
Člen
Avatar
Tomhaus:23.2.2015 22:49

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:23.2.2015 23:00

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:24.2.2015 8:39

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
Tvůrce
Avatar
Atrament:24.2.2015 10:12

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

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

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:24.2.2015 11:54

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:24.2.2015 21:11

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
Tvůrce
Avatar
Odpovídá na Tomhaus
Atrament:25.2.2015 0:11

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.