大佬教程收集整理的这篇文章主要介绍了css – 在JavaFX 8中,我可以从String中提供样式表吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
pane.getStylesheets().add( ".button:ok { -fx-BACkground-color: green; }\n"+ ".button:ko { -fx-BACkground-color: red; }");
private String css; public void initialize() { ... // to be done only once. URl.setURLStreamHandlerFactory(new StringURLStreamHandlerFactory()); ... } private void updateCss(Node nodE) { // can be done multiple times. css = createCSS(); node.getStylesheets().setAll("internal:"+System.nanoTime()+"stylesheet.css"); } private class StringURLConnection extends URLConnection { public StringURLConnection(URL url){ super(url); } @Override public void connect() throws IOException {} @Override public InputStream geTinputStream() throws IOException { return new StringBufferInputStream(css); } } private class StringURLStreamHandlerFactory implements URLStreamHandlerFactory { URLStreamHandler streamHandler = new URLStreamHandler(){ @Override protected URLConnection openConnection(URL url) throws IOException { if (url.toString().toLowerCase().endsWith(".css")) { return new StringURLConnection(url); } throw new FileNotFoundException(); } }; @Override public URLStreamHandler createURLStreamHandler(String protocol) { if ("internal".equals(protocol)) { return streamHandler; } return null; } }
协议“内部”显然可以是任何(非冲突)格式良好的字符串,并且(在这个简单的示例中)文件路径被强制忽略.
我用它来设置全局.css,所以我不需要记住多个字符串.
似乎Stream只打开一次,但我不知道在所有情况下是否都适用.
随意根据需要使代码复杂化;)
这种方法的功劳归于Jasper Potts(see this example)
以上是大佬教程为你收集整理的css – 在JavaFX 8中,我可以从String中提供样式表吗?全部内容,希望文章能够帮你解决css – 在JavaFX 8中,我可以从String中提供样式表吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。