Jump to content

Search the Community

Showing results for tags 'javafx'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 3 results

  1. Olá estou com um problema em minhas classes Java. Quando tento criar um novo "Fornecedor", o console me resulta o Caused by: java.lang.StackOverflowError. Aqui estão as minhas classes que interagem entre si. Se alguém poder me auxiliar na resolução deste problema, agradeço. package view; import application.Main; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; import javafx.stage.Stage; import model.Fornecedor; import model.Produto; public class FornecedorOverViewController { @FXML private TableView<Fornecedor> tabelaFornecedor; @FXML private TableColumn<Fornecedor, Integer> idFornecedor; @FXML private TableColumn<Fornecedor, String> nomeFornecedor; @FXML private TableColumn<Fornecedor, String> telefoneFornecedor; @FXML private Label nome; @FXML private Label telefone; public FornecedorOverViewController() { } int i = 0; private Main main; @FXML private void initialize() { nomeFornecedor.setCellValueFactory( cellData -> cellData.getValue().nomeProperty()); telefoneFornecedor.setCellValueFactory( cellData -> cellData.getValue().telefoneProperty()); idFornecedor.setCellValueFactory(new PropertyValueFactory<>("id")); showFornecedorDetails(null); tabelaFornecedor.getSelectionModel().selectedItemProperty().addListener( (observable, oldValue, newValue) -> showFornecedorDetails(newValue)); } public void setMainI(Main main) { this.main = main; tabelaFornecedor.setItems(main.getFornecedorData()); } private void showFornecedorDetails(Fornecedor fornecedor) { if (fornecedor != null) { nome.setText(fornecedor.getNome()); telefone.setText(fornecedor.getTelefone()); } else { nome.setText(" "); telefone.setText(" "); } } @FXML private void handleDeleteFornecedor() { int selectedIndex = tabelaFornecedor.getSelectionModel().getSelectedIndex(); if (selectedIndex >= 0) { tabelaFornecedor.getItems().remove(selectedIndex); } else { } } @FXML private void handleNewFornecedor() { Fornecedor newFornecedor = new Fornecedor(null,0); boolean okClicked = main.showFornecedorEditDialog(newFornecedor); if (okClicked) { main.getFornecedorData().add(newFornecedor); } } } package application; import java.io.IOException; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.BorderPane; import javafx.stage.Modality; import javafx.stage.Stage; import model.Categoria; import model.Fornecedor; import model.Produto; import model.Usuario; import view.FornecedorEditDialog; import view.FornecedorOverViewController; import view.LoginController; import view.ProdutoEditDialog; import view.ProdutoOverViewController; import view.RootLayoutController; public class Main extends Application { private Stage primaryStage; private BorderPane rootLayout; private AnchorPane loginLayout; private ObservableList<Produto> produtoData = FXCollections.observableArrayList(); private ObservableList<Fornecedor> fornecedorData = FXCollections.observableArrayList(); private ObservableList<Usuario> usuarioData = FXCollections.observableArrayList(); private ObservableList<Categoria> categoriaData = FXCollections.observableArrayList(); public Main() { int i =0; produtoData.add(new Produto("Skol", 5.99, ++i,199)); produtoData.add(new Produto("Budweiser", 8.99, ++i,2002)); produtoData.add(new Produto("Heineken", 12.00, ++i,22)); i = 0; fornecedorData.add(new Fornecedor("Ambev", ++i)); fornecedorData.add(new Fornecedor("Cervejaria Heineken", ++i)); fornecedorData.add(new Fornecedor("Coca-Cola", ++i)); fornecedorData.add(new Fornecedor("Fonte-Ijuí", ++i)); i = 0; usuarioData.add(new Usuario("mateus", "m16s97aa")); usuarioData.add(new Usuario("dala", "123456")); usuarioData.add(new Usuario("root", "654321")); categoriaData.add(new Categoria("Cerveja", ++i)); categoriaData.add(new Categoria("Vinho", ++i)); categoriaData.add(new Categoria("Vodka", ++i)); categoriaData.add(new Categoria("Cachaca", ++i)); i = 0; } @Override public void start(Stage primaryStage) { this.primaryStage = primaryStage; this.primaryStage.setTitle("Wine And Beer"); login(); /* if(click) { initRootLayout(); showProdutosOverView(); } */ } public void initRootLayout() { try { // Load root layout from fxml file. FXMLLoader loader = new FXMLLoader(); loader.setLocation(Main.class.getResource("/view/RootLayout.fxml")); rootLayout = (BorderPane) loader.load(); // Show the scene containing the root layout. Scene scene = new Scene(rootLayout); primaryStage.setScene(scene); // Give the controller access to the main app. RootLayoutController controller = loader.getController(); controller.setMain(this); primaryStage.show(); } catch (IOException e) { e.printStackTrace(); } /* // Try to load last opened person file. File file = getPersonFilePath(); if (file != null) { loadPersonDataFromFile(file); } */ } public void logar() { primaryStage.close(); initRootLayout(); showProdutosOverView(); //return true; } public void login() { try { // Load root layout from fxml file. FXMLLoader loader = new FXMLLoader(); loader.setLocation(Main.class.getResource("/view/Login.fxml")); loginLayout = (AnchorPane) loader.load(); // Show the scene containing the root layout. Scene scene = new Scene(loginLayout); primaryStage.setScene(scene); // Give the controller access to the main app. LoginController controller = loader.getController(); controller.setMain(this); primaryStage.show(); } catch (IOException e) { e.printStackTrace(); } } public void showProdutosOverView() { try { // Load person overview. FXMLLoader loader = new FXMLLoader(); loader.setLocation(Main.class.getResource("/view/Produto.fxml")); AnchorPane personOverview = (AnchorPane) loader.load(); // Set person overview into the center of root layout. rootLayout.setCenter(personOverview); // Give the controller access to the main app. ProdutoOverViewController controller = loader.getController(); controller.setMain(this); } catch (IOException e) { e.printStackTrace(); } } public Stage getPrimaryStage() { return primaryStage; } public ObservableList<Produto> getProdutoData() { return produtoData; } public ObservableList<Fornecedor> getFornecedorData(){ return fornecedorData; } public ObservableList<Usuario> getUsuarioData(){ return usuarioData; } public ObservableList<Categoria> getCategoriaData(){ return categoriaData; } public static void main(String[] args) { launch(args); } public boolean showProdutoEditDialog(Produto produto) { try { // Load the fxml file and create a new stage for the popup dialog. FXMLLoader loader = new FXMLLoader(); loader.setLocation(Main.class.getResource("/view/ProdutoEditDialog.fxml")); AnchorPane page = (AnchorPane) loader.load(); // Create the dialog Stage. Stage dialogStage = new Stage(); dialogStage.setTitle("Editar Produto"); dialogStage.initModality(Modality.WINDOW_MODAL); dialogStage.initOwner(primaryStage); // dialogStage.getIcons().add(new Image("file:resources/images/edit.png")); Scene scene = new Scene(page); dialogStage.setScene(scene); // Set the person into the controller. ProdutoEditDialog controller = loader.getController(); controller.setDialogStage(dialogStage); controller.setProduto(produto); controller.lotarCombo(fornecedorData, categoriaData); controller.setMain(this); // Show the dialog and wait until the user closes it dialogStage.showAndWait(); return controller.isOkClicked(); } catch (IOException e) { e.printStackTrace(); return false; } } public boolean showFornecedorEditDialog(Fornecedor fornecedor) { try { // Load the fxml file and create a new stage for the popup dialog. FXMLLoader loader = new FXMLLoader(); loader.setLocation(Main.class.getResource("/view/FornecedorEditDialog.fxml")); AnchorPane page = (AnchorPane) loader.load(); // Create the dialog Stage. Stage dialogStage = new Stage(); dialogStage.setTitle("Editar Fornecedor"); dialogStage.initModality(Modality.WINDOW_MODAL); dialogStage.initOwner(primaryStage); Scene scene = new Scene(page); dialogStage.setScene(scene); // Set the person into the controller. FornecedorEditDialog controller = loader.getController(); controller.setDialogStage(dialogStage); controller.setFornecedor(fornecedor); controller.setMain(this); // Show the dialog and wait until the user closes it dialogStage.showAndWait(); return controller.isOkClicked(); } catch (IOException e) { e.printStackTrace(); return false; } } } package view; import application.Main; import javafx.fxml.FXML; import javafx.scene.control.TextField; import javafx.stage.Stage; import model.Fornecedor; import model.Produto; public class FornecedorEditDialog { @FXML private TextField nome; @FXML private TextField telefone; private Stage dialogStage; private Main main; private int id; private Fornecedor fornecedor; private boolean okClicked = false; @FXML private void initialize() { } public void setDialogStage(Stage dialogStage) { this.dialogStage = dialogStage; } public void setMain(Main main) { this.main = main; id = main.getFornecedorData().size(); id = id+1; } public void setFornecedor(Fornecedor fornecedor) { this.fornecedor = fornecedor; nome.setText(fornecedor.getNome()); telefone.setText(fornecedor.getTelefone()); } public boolean isOkClicked() { return isOkClicked(); } @FXML private void handleOk() { if (isInputValid()) { fornecedor.setNome(nome.getText()); fornecedor.setTelefone(telefone.getText()); if(fornecedor.getId() == 0) { fornecedor.setId(this.id); } okClicked = true; dialogStage.close(); } } @FXML private void handleCancel() { dialogStage.close(); } private boolean isInputValid() { String errorMessage = ""; if (nome.getText() == null || nome.getText().length() == 0) { errorMessage += "Produto Invalido!\n"; } if (telefone.getText() == null || telefone.getText().length() == 0) { errorMessage += "Preco invalidos!\n"; } if (errorMessage.length() == 0) { return true; } else { // Show the error message. return false; } } }
  2. Olá a todos! Todos sabemos o quanto é difícil para o Java retornar, de modo fácil, a idade no formato: anos, meses e dias. Não estou me referindo a retornar o tempo entre duas datas em anos, o mesmo tempo em meses ou o mesmo em dias. Refiro-me a retornar quanto tempo uma determinada pessoa tem de vida, exemplo: 30 anos, 12 meses e 4 dias de vida. Sabemos ainda que existem os anos bissextos, o que complica o cálculo em algumas situações. O JAVA não nos ajuda de modo automático, como em alguma outra linguagem. Pensando nisso, desenvolvi um método que analisa as diversas situações e resolvi compartilhar, para outros colegas e para minhas consultas futuras. O método recebe como parâmetro uma data no formato yyyy-MM-dd (escolhi esse formato pois já vem do banco de dados) e retorna a idade no formato: 30a 4m 2d. JAVAFX: Retornar idade em anos, meses e dias: public String Idade(String dt_nasc) {//yyyy-MM-dd Calendar calHoje = GregorianCalendar.getInstance(); int diah = calHoje.get(Calendar.DAY_OF_MONTH); int mesh = calHoje.get(Calendar.MONTH) + 1; int anoh = calHoje.get(Calendar.YEAR); // Data do nascimento. String[] quebraDN = dt_nasc.split("-"); int dian = Integer.valueOf(quebraDN[2]); int mesn = Integer.valueOf(quebraDN[1]); int anon = Integer.valueOf(quebraDN[0]); String strNiver = anoh+"-"+mesn+"-"+dian; Calendar calNiver = Calendar.getInstance(); try { calNiver.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(strNiver)); } catch (ParseException ex) { Logger.getLogger(FormataData.class.getName()).log(Level.SEVERE, null, ex); } int anos = (calHoje.getTimeInMillis() < calNiver.getTimeInMillis())? (anoh-anon-1):anoh-anon ; int meses; int dias; meses = mesh - mesn; if (meses > 0) {//Verificando se já fez aniversário ou não if (diah < dian) { meses--; } } else if (meses < 0) {//Se o mês atual for menor que o mês do aniversário meses = 12 + meses;//Lembrar que meses está negativo, por isso a soma; //Da mesma forma, vamos comparar o dia atual com o dia do aniversário, para sabermos se o mês está completo ou não: if (diah < dian) { meses--; } } else {//Se o mês atual for o mês do aniversário: if (diah<dian) { meses = 11; } } dias = diah - dian; if (dias < 0) {//Se dia hoje menor que dia do niver, somar os dias desde o mês anterior: if (mesh==5||mesh==7||mesh==8||mesh==10||mesh==12) { dias = 30-dian+diah; } else if (mesh==1||mesh==2||mesh==4||mesh==6||mesh==9||mesh==11) { dias = 31-dian+diah; } else {//Verificando se o ano é bissexto ou não: Esse else é para o mês 3, cujo anterior é fevereiro: if (anoh%4 == 0) { dias = 29-dian+diah; } else { dias = 28-dian+diah; } } } System.out.println(anos+"a "+meses+"m "+dias+"d"); return anos+"a "+meses+"m "+dias+"d"; } Basta invocar o método através do evento de algum outro objeto, ou mesmo durante execução. Divirtam-se!
  3. Olá a todos! Sou iniciante em JavaFx. Após inúmeras pesquisas, encontrei um código em JavaFX que altera as cores das linhas de uma TableView de acordo com os dados retornados pelo banco de dados. Utilizando CSS, é possível alterar background, cor das letras, etc... @FXML private TableView tvOrcMedPrescricao; //Referência ao id da TableView (colocar o código dentro de: public void initialize(URL url, ResourceBundle rb) {) tvOrcMedPrescricao.setRowFactory(tv -> { return new TableRow<objPrescricao>() { @Override public void updateItem(objPrescricao item, boolean empty) { super.updateItem(item, empty) ; if (item == null) { setStyle(""); } else if (item.getVia().equals("ENDOVENOSA")) { setStyle("-fx-text-background-color: #AAA;"); //setStyle("-fx-background-color: #0080FF;"); } else { //setStyle("-fx-background-color: #0080FF;"); } } }; }); Espero que seja útil!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.