feat(browser): 实现Java字体和主题动态同步到HTML界面
- 添加javaFontsLoaded和javaThemeChanged事件监听机制 - 在BrowserWindow和BrowserWindowJDialog中实现字体信息获取和注入 - 前端HTML文件增加对应的字体应用逻辑和样式更新 - 创建WindowRegistry统一管理窗口主题更新 - 更新README文档说明HTML事件使用方法- 支持Monaco和CodeMirror编辑器的字体动态调整 -优化CEF浏览器与Java UI的字体和主题同步流程
This commit is contained in:
@@ -122,6 +122,61 @@
|
||||
});
|
||||
});
|
||||
|
||||
// 监听Java字体加载事件
|
||||
document.addEventListener('javaFontsLoaded', function(event) {
|
||||
const fontInfo = event.detail;
|
||||
console.log('接收到Java字体信息:', fontInfo);
|
||||
|
||||
// 应用Java字体到编辑器
|
||||
applyJavaFonts(fontInfo);
|
||||
});
|
||||
|
||||
// 应用Java字体的函数
|
||||
function applyJavaFonts(fontInfo) {
|
||||
const uiFonts = fontInfo.uiFonts || {};
|
||||
const defaultFont = fontInfo.defaultFont || uiFonts['Label.font'] || {};
|
||||
|
||||
if (defaultFont && defaultFont.family) {
|
||||
const fontFamily = defaultFont.family;
|
||||
const fontSize = defaultFont.size || 14;
|
||||
const fontWeight = defaultFont.bold ? 'bold' : 'normal';
|
||||
const fontStyle = defaultFont.italic ? 'italic' : 'normal';
|
||||
|
||||
// 创建字体样式
|
||||
const style = document.createElement('style');
|
||||
style.textContent = `
|
||||
body, html {
|
||||
font-family: '${fontFamily}', 'JetBrains Mono', 'Consolas', monospace !important;
|
||||
}
|
||||
#output {
|
||||
font-family: '${fontFamily}', 'JetBrains Mono', monospace !important;
|
||||
font-size: ${fontSize}px !important;
|
||||
}
|
||||
#executeBtn {
|
||||
font-family: '${fontFamily}', 'JetBrains Mono', monospace !important;
|
||||
}
|
||||
`;
|
||||
|
||||
// 添加到文档头
|
||||
document.head.appendChild(style);
|
||||
|
||||
// 更新Monaco编辑器字体
|
||||
if (window.editor) {
|
||||
editor.updateOptions({
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize
|
||||
});
|
||||
}
|
||||
|
||||
console.log('Java字体已应用到编辑器:', fontFamily, fontSize + 'px');
|
||||
}
|
||||
}
|
||||
|
||||
// 如果字体信息已经存在,立即应用
|
||||
if (typeof window.javaFontInfo !== 'undefined') {
|
||||
applyJavaFonts(window.javaFontInfo);
|
||||
}
|
||||
|
||||
monaco.languages.register({ id: 'c' });
|
||||
|
||||
// C语言关键字配置
|
||||
|
||||
Reference in New Issue
Block a user