小编Ben*_*Ben的帖子

JavaFX - 如何制作ComboBox hgrow?


我有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?

combobox javafx javafx-8

11
推荐指数
1
解决办法
4974
查看次数

JavaFX - 如何创建(invisble)WebView的SnapShot/Screenshot

我想在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)

java javafx webview javafx-8 javafx-webengine

10
推荐指数
1
解决办法
1483
查看次数

如何以编程方式将webservice发布到tomcat

我想以编程方式向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或......)?

(我知道已经发布了类似的问题.但是他们都没有回答我的问题.)

java tomcat web-services cxf jax-ws

7
推荐指数
1
解决办法
988
查看次数

(JasperReports)JRExporterParameter.FONT_MAP丢失了(如何替换?)

我正在从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实现相同的目标?

java fonts jasper-reports

5
推荐指数
0
解决办法
601
查看次数

访问 HTML5 音频响应标头

是否有可能以任何方式在 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)

javascript html5-audio

5
推荐指数
1
解决办法
740
查看次数

Unicode char不能在Swing中呈现,实际使用什么字体?

我在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 unicode fonts swing

4
推荐指数
1
解决办法
3786
查看次数