Проблема с вложенным контроллером Java FX, MainController не имеет InnerController [duplicate]

Вот еще один пример:

##
## Python Properties Example
##
class GetterSetterExample( object ):
    ## Set the default value for x ( we reference it using self.x, set a value using self.x = value )
    __x = None


##
## On Class Initialization - do something... if we want..
##
def __init__( self ):
    ## Set a value to __x through the getter / setter... Since __x is defined above, this doesn't need to be set...
    self.x = 1234

    return None


##
## Define x as a property, ie a getter - All getters should have a default value arg, so I added it - it will not be passed in when setting a value, so you need to set the default here so it will be used..
##
@property
def x( self, _default = None ):
    ## I added an optional default value argument as all getters should have this - set it to the default value you want to return...
    _value = ( self.__x, _default )[ self.__x == None ]

    ## Debugging - so you can see the order the calls are made...
    print( '[ Test Class ] Get x = ' + str( _value ) )

    ## Return the value - we are a getter afterall...
    return _value


##
## Define the setter function for x...
##
@x.setter
def x( self, _value = None ):
    ## Debugging - so you can see the order the calls are made...
    print( '[ Test Class ] Set x = ' + str( _value ) )

    ## This is to show the setter function works.... If the value is above 0, set it to a negative value... otherwise keep it as is ( 0 is the only non-negative number, it can't be negative or positive anyway )
    if ( _value > 0 ):
        self.__x = -_value
    else:
        self.__x = _value


##
## Define the deleter function for x...
##
@x.deleter
def x( self ):
    ## Unload the assignment / data for x
    if ( self.__x != None ):
        del self.__x


##
## To String / Output Function for the class - this will show the property value for each property we add...
##
def __str__( self ):
    ## Output the x property data...
    print( '[ x ] ' + str( self.x ) )


    ## Return a new line - technically we should return a string so it can be printed where we want it, instead of printed early if _data = str( C( ) ) is used....
    return '\n'

##
##
##
_test = GetterSetterExample( )
print( _test )

## For some reason the deleter isn't being called...
del _test.x

В принципе, то же, что и пример C (object), за исключением того, что я использую x вместо ... Я также не инициализирую __init - .. ну, но это можно удалить, потому что __x определен как часть класса ....

Выход:

[ Test Class ] Set x = 1234
[ Test Class ] Get x = -1234
[ x ] -1234

, и если я комментирую out self.x = 1234 в init, тогда выход будет:

[ Test Class ] Get x = None
[ x ] None

, и если я установил _default = None в _default = 0 в функции getter (поскольку все получатели должны иметь значение по умолчанию, но он не передается значениями свойств из того, что я видел, поэтому вы можете определить его здесь, и это на самом деле не плохо, потому что вы можете определить значение по умолчанию один раз и использовать его везде) ie: def x (self, _default = 0):

[ Test Class ] Get x = 0
[ x ] 0

Примечание. Логика-получатель просто должна управлять этим значением, чтобы гарантировать, что она управляется им - то же самое для операторов печати ...

Примечание. Я привык к Lua и могу динамически создавать 10+ помощников, когда я вызываю одну функцию, и я сделал что-то подобное для Python без использования свойств и работает до некоторой степени, но, несмотря на то, что функции создаются до их использования, по-прежнему возникают проблемы с тем, что они вызываются до их создания, что является странным, поскольку оно не кодируется таким образом. .. Я предпочитаю гибкость мета-таблиц Lua и факт, что я могу использовать фактические сеттеры / получатели вместо того, чтобы напрямую обращаться к переменной ... Мне нравится, как быстро некоторые вещи могут быть созданы с помощью Python, хотя, например, gui-программ. хотя я проектирую, может быть невозможен без большого количества дополнительных библиотек - если я его закодирую в AutoHotkey, я могу напрямую обращаться к нужным вызовам DLL, и то же самое можно сделать в Java, C #, C ++ и т. д. - возможно, я пока не нашли правильной вещи, но для этого проекта я могу переключиться с Python ..

Примечание: выход кода на этом форуме нарушен - мне пришлось добавить пробелы в первую часть кода для он работает - когда копирование / вставка гарантируют, что вы конвертируете все пробелы в вкладки .... Я использую вкладки для Python, потому что в файле, который составляет 10 000 строк, размер файла может быть от 512 КБ до 1 МБ с пробелами и от 100 до 200 КБ с вкладками, которые приравниваются к огромная разница в размере файла и сокращение времени обработки ...

Вкладки также могут быть скорректированы для каждого пользователя - поэтому, если вы предпочитаете ширину 2 пробела, 4, 8 или все, что вы можете сделать, это означает, что это вдумчивый для разработчиков с недостатками зрения.

Примечание. Все функции, определенные в классе, не имеют отступов должным образом из-за ошибки на форуме oftware - убедитесь, что вы вставляете его, если вы копируете / вставляете

0
задан blaze 11 May 2014 в 12:42
поделиться

1 ответ

Неверное имя переменной для InnerFileController. У вас есть:

@FXML закрытый контроллер InnerFileController;

, но должен быть:

@FXML private InnerFileController internalfileController;

Это связано с тем, что имя переменной для контроллера включенного файла всегда является значением fx: id с добавленным к нему контроллером.

5
ответ дан Jurgen 22 August 2018 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: