Пустой выбор пользовательского компонента SceneBuilderJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Пустой выбор пользовательского компонента SceneBuilder

Сообщение Anonymous »

Я пытаюсь создать собственный компонент в JavaFX и импортировать его в SceneBuilder. Я создал проект, содержащий только этот пользовательский компонент, и хочу иметь возможность импортировать этот компонент в SceneBuilder. Я ожидал увидеть CustomComponent в выборе SceneBuilder. Однако выбор пользовательских компонентов в SceneBuilder оказался пустым! Как я могу это решить? Обратите внимание: если я использую пример, описанный в разделе «Использование пользовательских компонентов JavaFX в SceneBuilder», он работает отлично.
У меня нет конкретного файла FXML, который я хочу, чтобы SceneBuilder отображал правильно, я просто хотите импортировать этот пользовательский компонент (с именем CustomComponent) в SceneBuilder.
Вот все файлы моего проекта. (Примечание. Идентификатор артефакта этого проекта — пользовательский компонент)
src/main/java/com/remmymilkyway/customcomComponent/CustomComponent.java

Код: Выделить всё

package com.remmymilkyway.customcomponent;

import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;

import java.net.URL;

public class CustomComponent extends Region {
private final WebView webView;
private final WebEngine webEngine;

public CustomComponent() {
this.webView = new WebView();
this.webEngine = webView.getEngine();

URL url = getClass().getResource("/monaco_editor.html");
if (url != null) {
webEngine.load(url.toExternalForm());
}

this.getChildren().add(webView);
}
public String getEditorContent() {
return (String) webEngine.executeScript("getEditorValue()");
}

public void setEditorContent(String newValue) {
String escapedContent = newValue.replace("'", "\\'").replace("\n", "\\n");
webEngine.executeScript("setEditorValue('" + escapedContent + "');");
}

public void setFontFamily(String fontFamily) {
webEngine.executeScript("setFontFamily('" + fontFamily + "');");
}

public void setFontSize(int fontSize) {
webEngine.executeScript("setFontSize(" + fontSize + ");");
}

public void setLanguage(String languageIdentifier) {
webEngine.executeScript("setLanguage('" + languageIdentifier + "');");
}

@Override
protected void layoutChildren() {
webView.setPrefSize(getWidth(), getHeight());
webView.resize(getWidth(), getHeight());
}
}
src/main/java/resources/monaco_editor.html

Код: Выделить всё




Monaco Editor in JavaFX


body, html {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
}
#container {
height: 100%;
width: 100%;
}





require.config({ paths: { 'vs': 'monaco-editor/min/vs' }});
require(['vs/editor/editor.main'], function () {
var editor = monaco.editor.create(document.getElementById('container'), {
language: 'cpp',
automaticLayout: true
});

window.getEditorValue = function () {
return editor.getValue();
}
window.setEditorValue = function (newValue) {
editor.setValue(newValue);
}

window.setFontFamily = function(fontFamily) {
editor.updateOptions({
fontFamily: fontFamily
});
};

window.setFontSize = function(fontSize) {
editor.updateOptions({
fontSize: fontSize
});
};

window.setLanguage = function(language) {
monaco.editor.setModelLanguage(editor.getModel(), language);
};
});



pom.xml

Код: Выделить всё


4.0.0

com.remmymilkyway
custom-component
1.0-SNAPSHOT
custom-component


UTF-8
5.10.2




org.openjfx
javafx-controls
22.0.1


org.openjfx
javafx-fxml
22.0.1


org.openjfx
javafx-web
22.0.1



org.junit.jupiter
junit-jupiter-api
${junit.version}
test


org.junit.jupiter
junit-jupiter-engine
${junit.version}
test






org.apache.maven.plugins
maven-compiler-plugin
3.13.0

22
22



org.openjfx
javafx-maven-plugin
0.0.8



default-cli


com.remmymilkyway.customcomponent/com.remmymilkyway.customcomponent.HelloApplication

app
app
app
true
true
true







Файлы дистрибутива Monaco Editor загружаются в папку src/main/resources/monaco-editor.
Я выполнил команду mvn install и попытался импортировать проект в SceneBuilder, нажав кнопку Добавить библиотеку из репозитория вручную и импортировав версию 1.0-SNAPSHOT. Как показано на этом рисунке:
Изображение

И у меня появился пустой выбор, когда я нажал кнопку ДОБАВИТЬ JAR.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/790 ... tion-blank
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»