小编fab*_*ian的帖子

JavaFX中的AutoComplete ComboBox

我正在寻找一种向JavaFX添加自动完成功能的方法ComboBox.在搜索了很多之后,是时候在这里问了一下.

AutoFillBox是众所周知的,但不是我正在搜索的内容.我想要的是一个可编辑的组合框,输入列表时应该过滤掉.但是我也希望打开列表而不打字并查看整个项目.

任何的想法?

java combobox autocomplete javafx-2 javafx-8

47
推荐指数
5
解决办法
5万
查看次数

如何在JavaFX 2.1中创建模态窗口

我无法弄清楚如何在JavaFX中创建模态窗口.基本上我有文件选择器,我想在用户选择文件时询问用户.我需要这些信息才能解析文件,因此执行需要等待答案.

我已经看到了这个问题但是我无法找到如何实现这个行为.

javafx javafx-2

36
推荐指数
2
解决办法
7万
查看次数

序列化 - readObject writeObject覆盖

编写下面的代码后,我现在必须使用自定义的readObject()和writeObject()覆盖StudentData中的方法来读取和写入对象的变量.不使用defaultWriteObject或defaultReadObject方法来执行此操作.

麻烦的是我不完全理解被要求做什么.我已阅读序列化中的readObject/writeObject的使用,但我无法理解它.有人指出我正确的方向吗?

我的代码:

import java.io.*; //importing input-output files

class Student implements java.io.Serializable {

    String name; // declaration of variables
    String DOB;
    int id;

    Student(String naam, int idno, String dob) // Initialising variables to user
                                                // data
    {
        name = naam;
        id = idno;
        DOB = dob;
    }

    public String toString() {
        return name + "\t" + id + "\t" + DOB + "\t";
    }

}
Run Code Online (Sandbox Code Playgroud)
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import …
Run Code Online (Sandbox Code Playgroud)

java serialization deserialization

35
推荐指数
1
解决办法
8万
查看次数

如何避免不在FX应用程序线程上; currentThread = JavaFX应用程序线程错误?

下面的代码片段给我错误Not on FX application thread; currentThread= JavaFX Application Thread.这个应用程序在java 1.7中工作得很好但是当我把它移动到fx8时它现在给出了错误.当我在第一次尝试时启动应用程序时它正在按预期工作.但是在关闭舞台并再次打开它之后它无法正常工作.

错误也是模棱两可的.Not On fx application thread and current thread- javafx application thread如果当前线程是fx应用程序线程,那么它不是在fx应用程序线程上意味着什么.

      progressDialog = createProgressDialog(service);
        progressDialog.show();
        progressDialog.setOnCloseRequest(new EventHandler<WindowEvent>() {
          @Override
          public void handle(WindowEvent event) {
            // if (service.isRunning()) {
            // service.cancel();
            progressDialog.close();
            // }
          }
        });

      }

      @SuppressWarnings("unchecked")
      private Stage createProgressDialog(final Service<IStatus> service) {
        stage = new Stage();

        URL url = FileLocator.find(Activator.getDefault().getBundle(),
            new Path("icons/xxx_16x16.png"), null); //$NON-NLS-1$
        stage.getIcons().add(new Image(url.getFile()));
        stage.setTitle("Downloading ..."); //$NON-NLS-1$
        // Creating StackPane
        stage.initModality(Modality.WINDOW_MODAL);
}
Run Code Online (Sandbox Code Playgroud)

multithreading javafx javafx-2 javafx-8

34
推荐指数
6
解决办法
7万
查看次数

JPEG图像颜色错误

我有一个方法来读取图像,转换它们(大小,格式)并将它们写回.这总是很好用,但现在我遇到了一些显然包含一些元数据(IPTC)的JPEG图像(来自新闻社).转换这些图像时,颜色都是错误的.我的第一个猜测是,那些是CMYK图像,但它们不是.

问题必须来自阅读,因为无论我是将图像转换为较小的JPEG还是PNG,它总是看起来一样.

起初,我曾经ImageIO.read()读过这张照片.我现在得到实际的ImageReadervia ImageIO.getImageReadersByMIMEType()并尝试告诉读者通过设置ignoreMetadata参数ImageReader#setInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata)但忽略元数据但没有成功.

然后我创建了一个没有元数据的图像版本(使用Fireworks).该图像已正确转换.

我能找到的唯一区别是,对于未工作的图像,读者变量的colorSpaceCode值为2,而对于工作图像,值为3.还有一个outColorSpaceCode2两个图像.

由于读者源评论仅表示Set by setImageData本机代码回调.一个修改过的IJG + NIFTY颜色空间代码我现在真的被卡住了.所以任何帮助将不胜感激.

您可以通过此处并单击下载来获取原始图像(~3 MB).下图左侧显示了我从原始图像中获得的内容,右侧显示了它应该是什么样子.

错误的颜色 正确的颜色(删除元数据后)

java jpeg image

31
推荐指数
1
解决办法
1万
查看次数

如何使用自定义对象在JavaFX中填充ListView?

我对Java,JavaFX和一般的编程有点新意,我有一个问题正在打破我的大脑.

在大多数关于填充ListView的教程中(更具体地说,使用ObservableArrayList),最简单的方法是从字符串的ObservableList中创建它,如下所示:

ObservableList<String> wordsList = FXCollections.observableArrayList("First word","Second word", "Third word", "Etc."); 
ListView<String> listViewOfStrings = new ListView<>(wordsList);
Run Code Online (Sandbox Code Playgroud)

但我不想使用字符串.我想使用一个名为Words的自定义对象:

ObservableList<Word> wordsList = FXCollections.observableArrayList();
wordsList.add(new Word("First Word", "Definition of First Word");
wordsList.add(new Word("Second Word", "Definition of Second Word");
wordsList.add(new Word("Third Word", "Definition of Third Word");
ListView<Word> listViewOfWords = new ListView<>(wordsList);
Run Code Online (Sandbox Code Playgroud)

每个Word对象只有2个属性:wordString(单词的一个字符串)和definition(另一个字符串,即单词的定义).我两个都有吸气剂和二传手.

您可以看到它的位置 - 代码编译和工作,但是当我在我的应用程序中显示它时,它不会显示ListView中每个单词的标题,而是将Word对象本身显示为字符串!

该图显示了我的应用程序及其ListView

我的问题是,具体来说,有一种简单的方法可以重写这个:

ListView<Word> listViewOfWords = new ListView<>(wordsList);
Run Code Online (Sandbox Code Playgroud)

这样一来,它不是直接从wordsList中获取Words,而是访问我的observableArrayList的每个Word中的wordString属性?

为了清楚起见,这不适用于android,并且最终将更改,保存和加载单词列表,因此我不能只创建另一个数组来保存wordStrings.我在网上做了一些研究,似乎有一个名为'Cell Factories'的东西,但对于看起来如此简单的问题似乎不必要的复杂,正如我之前所说,我有点编程方面的新手.

有人可以帮忙吗?这是我第一次来这里,所以如果我没有包含足够的代码或者我做错了,我很抱歉.

java listview javafx

26
推荐指数
1
解决办法
2万
查看次数

如何从java fx应用程序中打开默认系统浏览器?

我正在尝试从javafx在默认系统浏览器中打开一个Web URL.我没有找到任何关于此的官方文件.任何线索?

编辑:我找到了一个教程,但它不起作用.我正在使用MacOsX,我尝试启动

java.awt.Desktop.getDesktop().browse(new URI(url));
Run Code Online (Sandbox Code Playgroud)

但是我得到了 HeadlessExcelption

javafx javafx-2

25
推荐指数
5
解决办法
2万
查看次数

导入javafx.scene.control.Alert无法解析

我在Eclipse中跟随两个导入时收到错误:

import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
Run Code Online (Sandbox Code Playgroud)

错误是:" 导入javafx.scene.control.Alert无法解析 ",第二个import语句也是如此.

我正在使用Eclipse版本:Luna Service Release 2(4.4.2)并安装了最新JDK 1.8(1.8.0_45)的e(fx)clipse.

其他与javafx相关的import语句没有问题,例如

import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.input.MouseEvent;
Run Code Online (Sandbox Code Playgroud)

java eclipse javafx efxclipse

18
推荐指数
1
解决办法
2万
查看次数

右键单击JavaFX?

如何在JavaFX中检测/处理右键单击?

javafx javafx-1

16
推荐指数
2
解决办法
2万
查看次数

JavaFX中的Z-Order

如何VBox在JavaFX中设置Z-order ?

java javafx z-order vbox

16
推荐指数
3
解决办法
2万
查看次数