我希望得到一些关于在tabpane中为每个选项卡提供fx:include语句的答案.我已经轻松地管理内容以显示但是相关控制器类的引用方法只是给我一个nullpointerreference异常,无论我如何构造它.包含的FXML布局的控制器既没有构造函数也没有初始化()方法,是否需要它们?我尝试了一些不同的东西,但总是得到同样的例外.
我只是在tabpane中添加一个更改侦听器,当按下一个选项卡时,我想填充一些带有从全局可访问的arraylist获取的值的文本字段.注意:arraylist不是问题,使用主控制器执行此操作工作正常.
我将很快添加一个代码示例,但现在不能.如果您需要更多信息,请告诉我,否则我会在今天晚些时候发布代码.
*编辑,这是我的代码示例,取自StackOverflow上的另一个线程. JavaFX TabPane - 每个选项卡一个控制器
TestApp.java:
public class TestApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Scene scene = new Scene(new StackPane());
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/MainTestWindow.fxml"));
scene.setRoot(loader.load());
MainTestController controller = loader.getController();
controller.init();
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
主控制器,我想引用子控制器.
public class MainTestController {
@FXML private TabPane tabPane;
// Inject tab content.
@FXML private Tab fooTabPage;
// Inject controller
@FXML private FooTabController fooTabPageController;
// Inject tab content. …Run Code Online (Sandbox Code Playgroud) 我完全陷入困境,我无法使用群发消息与频道2合作!我已经按照我能找到的所有教程和文档进行了操作,但是我还没有找到问题所在.我现在要做的是让一个特定的URL在访问时应该向一个名为"events"的组广播一条简单的消息.
首先,这里是我在Django中使用的相关和当前设置:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('localhost', 6379)],
},
}
}
ASGI_APPLICATION = 'backend.routing.application'
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'channels',
'channels_redis',
'backend.api'
]
Run Code Online (Sandbox Code Playgroud)
接下来,这是我的EventConsumer,以一种非常基本的方式扩展JsonWebsocketConsumer.所有这些都是在收到消息时回显,这有效!因此,简单的send_json响应应该到达,它只是组播不起作用.
class EventConsumer(JsonWebsocketConsumer):
groups = ["events"]
def connect(self):
self.accept()
def disconnect(self, close_code):
print("Closed websocket with code: ", close_code)
self.close()
def receive_json(self, content, **kwargs):
print("Received event: {}\nFrom: {}\nGroups:
{}".format(content,
self.channel_layer,
self.groups))
self.send_json(content)
def event_notification(self, event):
self.send_json(
{
'type': 'test',
'content': event
}
)
Run Code Online (Sandbox Code Playgroud)
这是我想要触发广播的URL的URL配置:
项目urls.py
from …Run Code Online (Sandbox Code Playgroud) 收到此错误消息后 kubectl apply -f .
error: error converting YAML to JSON: yaml: invalid map key: map[interface {}]interface {}{"include (print $.Template.BasePath \"/configmap.yaml\") . | sha256sum":interface {}(nil)}
Run Code Online (Sandbox Code Playgroud)
我试过放在checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}不同的地方,但我不太了解 YAML 或 JSON 来找出问题所在。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: demo
spec:
replicas: 1
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-config-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
configMapKeyRef:
name: demo-config
key: …Run Code Online (Sandbox Code Playgroud) django ×1
fxml ×1
fxmlloader ×1
go-templates ×1
java ×1
javafx ×1
json ×1
kubernetes ×1
redis ×1
yaml ×1