我有JavaFX(8),HBox,ComboBox和HGrow的问题.HGrow不能与ComboBox结合使用.
(INFO:使用TextField(而不是ComboBox),它按预期工作!)
这是我的FXML代码:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox prefHeight="117.0" prefWidth="285.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.test.TestController">
<children>
<HBox prefHeight="105.0" prefWidth="196.0" VBox.vgrow="ALWAYS">
<children>
<ComboBox fx:id="fxCboTest" prefHeight="25.0" prefWidth="62.0" HBox.hgrow="ALWAYS" />
</children>
</HBox>
</children>
</VBox>
Run Code Online (Sandbox Code Playgroud)
本准则将导致:

我也试过以下代码(没有成功,这段代码什么也没做):
HBox.setHgrow(uiController.fxCboTest, Priority.ALWAYS);
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何制作ComboBox HGrow?
我想在JavaFX(8)中从WebView创建SnapShot/Screenshot/Image.
这个WebView不需要是可见的(在我的例子中).
我的问题:当WebView 不可见(或未添加到任何可见容器)时,
是否可以(以任何方式)从WebView创建屏幕截图/图像?
看看我的示例代码,当WebView(或它的父ScrollPane)可见= false时,
屏幕截图将不起作用(分别是emtpy/blank).
示例代码:
package test;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.SnapshotResult;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.util.Duration;
public class JavaFXApplication extends Application
{
@Override
public void start(Stage primaryStage)
{
ImageView webviewPreviewImage = new ImageView();
Label waitLabel = new Label("Please wait...");
WebView webView = new WebView();
webView.setMaxHeight(480d);
webView.setMinHeight(480d);
webView.setMaxWidth(640d); …Run Code Online (Sandbox Code Playgroud) 我想以编程方式向tomcat 发布web服务.
与例如JAX-WS或Apache CXF
类似Endpoint.publish(...).
//how to tell this tomcat?
Endpoint.publish("http://0.0.0.0:8080/SimpleService", serviceImpl);
//or better something like this:
Endpoint.publish("/SimpleService", serviceImpl);
Run Code Online (Sandbox Code Playgroud)
无需使用web.xml和/或sun-jaxws.xml(对于每项服务)
问题:
有没有任何已知的方法来实现它(使用JAX-WS或Apache CXF或......)?
(我知道已经发布了类似的问题.但是他们都没有回答我的问题.)
我正在从JasperReports 4.0.0迁移到JasperReports 6.1.0
我曾经做过:
Map<FontKey, PdfFont> fontMap = new HashMap<>();
fontMap.put(new FontKey("SansSerif", true, true), new PdfFont("ARIALUNI.TTF", BaseFont.IDENTITY_H, true));
fontMap.put(new FontKey("Helvetica", false, false), new PdfFont("ARIALUNI.TTF", BaseFont.IDENTITY_H, true));
pdfExporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
Run Code Online (Sandbox Code Playgroud)
但属性FONT_MAP不再存在(类相同:FontKey + PdfFont)
如何使用JasperReports 6.1.0实现相同的目标?
是否有可能以任何方式在 Javascript 中访问 HTML5 音频源的 HTTP 响应标头(以便我可以读取它们)?
<audio id="myaudio" controls>
<source src="/test.mp3" type="audio/mpeg">
</audio>
Run Code Online (Sandbox Code Playgroud)
编辑2:
似乎可以通过(服务人员)访问标头, 我尝试了类似的操作:
if ('serviceWorker' in navigator) {
console.log('CLIENT: service worker registration in progress.');
navigator.serviceWorker.register('/service-worker.js').then(function(){
console.log('CLIENT: service worker registration complete.');
}, function() {
console.log('CLIENT: service worker registration failure.');
});
} else {
console.log('CLIENT: service worker is not supported.');
}
Run Code Online (Sandbox Code Playgroud)
我的 service-worker.js 看起来像(仅作为示例!):
self.addEventListener('fetch', function(event) {
console.log("SENDING REQUEST: " + event.request.url);
if(event.request.url === 'https://localhost/test.mp3') {
event.respondWith(
fetch(event.request.url, {
method: "GET",
headers: { …Run Code Online (Sandbox Code Playgroud) 我在swing应用程序中显示unicode字符时遇到问题.
认为问题是使用的字体,它不包含适合中文的字符.
(仅显示空框)
以下是我的问题的一些信息(我做了一些调查):
Linux(Kubuntu 14.04):
当我用JAVA 6启动我的程序时,不显示中文字符(只有空框).
(通过getFont()询问标签字体返回:DejaVu Sans)
当我用JAVA 7启动程序时,中文字符显示正确!
(通过getFont()询问标签字体返回:DejaVu Sans)
Windows(8.1):
当我用JAVA 6启动程序时,中文字符显示正确!
(通过getFont()询问标签字体返回:SansSerif)
当我用JAVA 7启动程序时,中文字符显示正确!
(通过getFont()询问标签字体返回:SansSerif)
$ JAVA_HOME/lib/fonts,(似乎用作fallback-font)两个java版本(6 + 7)都包含相同的字体.(在两个系统上)
字体文件具有相同的大小(Java6 + Java7),fontconfig.properties.src也是相同的.
当我直接询问Label(通过getFont())时,它在Windows(8.1)上返回"SansSerif",在我的Kubuntu(14.04)上返回"DejaVu Sans".
(见截图)
使用JAVA 6在Linux上启动:

使用JAVA 7在Linux上启动:

Windows上的"SansSerif"正确显示字符,但使用了哪些SansSerif-Font?MS SansSerif(名称中唯一一个带有SansSerif的字体)没有所有这些中文字符.
编辑:
与DejaVuSans相同.
看起来DejaVu Sans没有中文字符!(但是,显示它们!)
编辑2:
我尝试了安德鲁发布的代码(请参阅:如何确定2种字体是否具有等效的字形?),但是使用中文示例文本,
这是结果:
使用JAVA 6在Linux上启动:

使用JAVA 7在Linux上启动:

编辑3:
正如所要求的那样,这里是我测试过的字符串:
String s = "\u6253\u5370\u8FC7\u671F\u8BC1\u4E66\u8BB0\u5F55"; //means: ????????
JOptionPane.showMessageDialog(null, s);
Run Code Online (Sandbox Code Playgroud)
问题是:
实际使用了哪种字体(在系统上)以及如何找到?
提前致谢!
java ×4
fonts ×2
javafx ×2
javafx-8 ×2
combobox ×1
cxf ×1
html5-audio ×1
javascript ×1
jax-ws ×1
swing ×1
tomcat ×1
unicode ×1
web-services ×1
webview ×1