2016-04-07 19 views
0

Tablodaki bir sınıftaki girdilerin çeşitli özniteliklerini görüntüleyen ve kullanıcının ikincil bir giriş penceresinden yeni bir girdi eklemesine izin veren basit bir nesne veritabanı uygulaması üzerinde çalışıyorum.Bir JavaFX FXML uygulamasında garip görünürlük sorunları

Ana:

public class Main extends Application { 

     Stage theStage; 
     Scene mainWindowController; 

     @Override 
     public void start(Stage primaryStage) throws Exception{ 
      theStage = primaryStage; 

      Parent root = FXMLLoader.load(getClass().getResource("MainWindow.fxml")); 
      primaryStage.setTitle("Steam Database"); 

      mainWindowController = new Scene(root, 800, 550); 

      primaryStage.setScene(mainWindowController); 
      primaryStage.show(); 
     } 

     public static void main(String[] args) { 
      launch(args); 
     } 
    } 
ikincil pencerelerden biri için bir kontrolör

: çizgide

import static sample.MainWindowController.*; 

public class CreateDeveloperWindowController { 
/* 
*/ 
@FXML 
private TextField newDeveloperNameTextField; 

@FXML 
private TextField newDeveloperPassTextField; 

    private void handleCreateDeveloperButton() { 
     String proposedNewDevName = newDeveloperNameTextField.getText(); 
     String proposedNewDevPass = newDeveloperPassTextField.getText(); 
     if (proposedNewDevName.equals("") || proposedNewDevPass.equals("")) { 
      mainWindowController.textMessageDisplay.setText("Name and password must not be empty!"); 
     } else { 
      allDevelopers.add(new Developer(proposedNewDevName, proposedNewDevPass)); 
     } 

    } 
/* 
*/ 
} 

sorun denetleyicisi olduğu,

mainWindowController.textMessageDisplay.setText("Name and password must not be empty!"); 

alıyorum Üzerinde "Bir sembol çözülemiyor" hatası var, ancak nedenini ayırt edemiyorum. Bir çözüm "Ana" eklemektir. Önünde ve static değişkenini bildirir, ancak eklemek istediğim diğer işlevler için sorun oluşturur. Sorularım:

  1. Bu neden ortaya çıkıyor? mainWindowController değişkeni, Main sınıfı içinde bildirildiğinden, bildiğim kadarıyla uygulamada herhangi bir yerden görülebilir olmalıdır.

  2. Bunu nasıl çözerim; Bu çizgiyi nasıl çalıştırabilirim?

+0

, yani hata alıyorum. –

+0

Ancak, CreateDeveloperWindowController ana sınıfta görmüyor mu? Onu içe aktarsam bile, "Statik olmayan bir değişken statik bir bağlamdan referans alınamaz" hatasını verir, bu yalnızca değişken statik bildirerek çözülebilir, bu da söz konusu sorunda bahsettiğim soruna neden olur - statik, diğer şeylerin yolunda olduğu için – Sargon1

+0

ekleyeceğim * "Ama CreateDeveloperWindowController ana sınıfta görmemeli mi?" * Hayır, neden görüyordu? Bu sadece Java'nın (ya da bildiğim başka bir dilin) ​​çalıştığı şey değil. –

cevap