Heh je to trocha iné :D ale viac menej chápem asi všetko. Dik idem to prerobiť a skúsiť pokračovať daľej :) Večer (ak stihnem) to sem postnem a určite s novým problémom :D
Dik zatial
Heh je to trocha iné :D ale viac menej chápem asi všetko. Dik idem to prerobiť a skúsiť pokračovať daľej :) Večer (ak stihnem) to sem postnem a určite s novým problémom :D
Dik zatial
ten button:
btnLogin.setOnAction(e -> {
System.out.println("button login clicked");
if (passField.getText().equals(password)){
StackPane layoutMenu = new ObrMenu();
Scene scena = new Scene(layoutMenu,640,480);
stWindow.setScene(scena);
stWindow.show();
//lblmsg.setText("Your password is correct!");
//lblmsg.setTextFill(Color.rgb(21, 117, 84));
System.out.println("login succesfull");
}else{
lblmsg.setText("Your password is incorrect!");
lblmsg.setTextFill(Color.rgb(21, 117, 84));
System.out.println("incorrect");
}
a vlastne po podmienke:
package sample;
import javafx.scene.layout.StackPane;
/**
* Created by cheki on 7. 9. 2016.
*/
public class ObrMenu extends StackPane{
public ObrMenu(){
super();
}
}
teraz ked chcem pridat nejaky button tak mal by som napisat metodu a tu potom dat do konstruktoru?
hej viem, že sa dá použiť scene builder a verím, že to je celkom ľahké :). Len chcem to takto ručne aby som aj niečo programoval :), takto ma to aj núti riešiť problémy a tým sa to lepšie učím :) všeobecne javu pri tom, nie len fx.
nejak takto?
btnLogin.setOnAction(e -> {
System.out.println("button login clicked");
if (passField.getText().equals(password)){
BorderPane layoutMenu = new ObrMenu();
Scene scena = new Scene(panel,640,480);
stWindow.setScene(scena);
stWindow.show();
//lblmsg.setText("Your password is correct!");
//lblmsg.setTextFill(Color.rgb(21, 117, 84));
System.out.println("login succesfull");
}else{
lblmsg.setText("Your password is incorrect!");
lblmsg.setTextFill(Color.rgb(21, 117, 84));
System.out.println("incorrect");
}
});
a vlastne potom: public class ObrMenu extends BorderPane {
či aj tak zle ? :D
cize v btnLogin po vyhodnoteny podmienky pridam novy stage a scenu + show(), hide() ? Lebo ide mi o to ze to co bude za tym klikom (okno) chcem dat ako dalsi subor (zatial som amamter) cize s tym nejak bojujem
tu je kód, Okej chápem... ale ked budem mať napr 100 ďaľších okien tak všetky tie stage pôjdu sem ? >>
public class Login extends Application {
Stage stWindow;
String password = new String("asdf");
package sample;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class Login extends Application {
Stage stWindow;
String password = new String("asdf");
@Override
public void start(Stage primaryStage) throws Exception{
stWindow = primaryStage;
stWindow.setTitle("Login");
GridPane layout = new GridPane();
layout.setPadding(new Insets(10,10,10,10));
layout.setVgap(8);
layout.setHgap(12);
//Label - uzivatel
Label lblUser = new Label();
lblUser.setText("Username: ");
layout.add(lblUser, 0,0);
//Textfield uzivatel input
TextField inputUser = new TextField();
inputUser.setPromptText("User name");
inputUser.setText("cheki");
layout.add(inputUser,1,0);
//Label - Password
Label lblPass = new Label();
lblPass.setText("Password: ");
layout.add(lblPass, 0,1);
Label lblmsg = new Label();
layout.add(lblmsg, 1,3);
PasswordField passField = new PasswordField();
passField.setPromptText("password");
layout.add(passField,1,1);
//Button login
Button btnLogin = new Button();
btnLogin.setText("Log in");
layout.add(btnLogin,1,2);
btnLogin.setOnAction(e -> {
System.out.println("button login clicked");
if (passField.getText().equals(password)){
lblmsg.setText("Your password is correct!");
lblmsg.setTextFill(Color.rgb(21, 117, 84));
System.out.println("login succesfull");
}else{
lblmsg.setText("Your password is incorrect!");
lblmsg.setTextFill(Color.rgb(21, 117, 84));
System.out.println("incorrect");
}
});
//Button register
Button btnRegister = new Button();
btnRegister.setText("Reg me");
layout.add(btnRegister,0,2);
//layout.setGridLinesVisible(true);
Scene scena = new Scene(layout,251,150);
stWindow.setScene(scena);
stWindow.show();
}
//public boolean CheckPassword (String s )
public static void main(String[] args) {
launch(args);
}
}
Čawte. Robím prvú appku, pri ktorej sa učím javaFX. Spravil som si prvé okno na login(user/pass), pridal button. Môj problém je teraz: Po kliknutí na button chcem aby (pri zadaní mena/hesla) sa toto okno zavrelo a otvorilo sa nové. 1- pre kód na to ďalšie okno, kde budú ďalšie buttony ai mám vytvoriť nový file? 2. na to druhé okno mám použiť novú scénu alebo stage? 3- treba to prvé okno na login nejak ukončiť? (close).
k druhému bodu: stačí, keď spravím druhú scénu a na ten button dám napr: btn2.setOnAction(e -> window.setScene(scene1));??
dik za pomoc