#1 Jirka853
Abych řekl pravdu vůbec nechápu o co se to snažíš. Ale z logiky věci to funguje naprosto správně. Možná spíš popiš čeho se snažíš dosáhnout. ;)
Příspěvky odeslané z IP adresy 83.240.101.–
#7 cheki
Tak ono hlavně je to spíš ztráta času, když tyhle věci můžeš udělat rychlejc. Jo asi se i něco naučíš ale já už to beru z trochu jinýho hlediska. :) Navíc právě fxml si myslím, že taky není k zahození se naučit...
Může to vypadat třeba takhle:
soubor LoginApp.java:
package fxlogin;
import javafx.application.Application;
import javafx.stage.Stage;
public class LoginApp extends Application
{
public static void main(String[] args)
{
Application.launch(LoginApp.class, args);
}
@Override
public void start(Stage mainWindow) throws Exception
{
new LoginWindow(mainWindow);
}
}
soubor LoginWindow.java:
package fxlogin;
import javafx.geometry.Insets;
import javafx.scene.Parent;
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;
/**
* @author Milan Fašina
*
*/
public class LoginWindow extends Stage
{
private static final String PASSWORD_EXAMPLE = "ahoj";
private final Stage mainWindow;
public LoginWindow(Stage mainWindow)
{
this.mainWindow = mainWindow;
setTitle("Přihlašovací okno");
setScene(new Scene(getContent(), 300, 275));
show();
}
private Parent getContent()
{
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_EXAMPLE))
{
this.hide();
mainWindow.setTitle("hlavní okno");
mainWindow.setScene(new MainContent());
mainWindow.show();
}
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);
return layout;
}
}
soubor MainContent.java:
package fxlogin;
import javafx.geometry.Insets;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
/**
* @author Milan Fašina
*
*/
public class MainContent extends Scene
{
public MainContent()
{
super(getContent());
}
private static Parent getContent()
{
GridPane layout = new GridPane();
layout.setPadding(new Insets(10,10,10,10));
layout.setVgap(8);
layout.setHgap(12);
Label lblUser = new Label();
lblUser.setText("Vítej ó nejmocnější");
layout.add(lblUser, 0,0);
return layout;
}
}