使JavaFX TableView行无法选择和NoFocusTraversable

我试图使JavaFX行无法选择, NoFocusTraversable但我没有运气这样做。 下面是您可以用来玩它的另一个问题的代码。 我添加了两个自定义行,使某些行no focus traversable 。 虽然我不能让某些行无法unselectable ,但任何想法? 您需要下载TomasMikula / EasyBind库(或注释上面的行并取消注释RowFactory ) 代码来自( JavaFX:如何禁用TableView中的行? )StackOverflow答案: import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; import java.util.function.Function; import javafx.application.Application; import javafx.beans.binding.Bindings; import javafx.beans.property.IntegerProperty; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.beans.value.ObservableValue; import javafx.collections.ObservableList; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ContentDisplay; import javafx.scene.control.TableCell; import […]

删除文件追加器后,Log4j2不会登录到服务器

我遇到了一个奇怪的问题,我不明白: 当我删除我的File appender时,它阻止我登录到我的服务器,即使File appender不应该负责将任何内容记录到服务器; 该任务应仅适用于我的GELF appender。 以下代码能够将两者都记录到我的控制台和服务器上 Java的 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class App { private static final Logger log4j = LogManager.getLogger(App.class.getName()); public static void main(String[] args) { log4j.info(“This is my info message”); log4j.warn(“This is my warning message”); log4j.error(“This is my error message”); log4j.fatal(“This is my fatal message”); } } XML %d{MM/dd/yyyy hh:mm:ss} %5p […]

如何使用JFileChooser保存txt文件?

鉴于此方法: public void OutputWrite (BigInteger[] EncryptCodes) throws FileNotFoundException{ JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.showSaveDialog(null); String path = chooser.getSelectedFile().getAbsolutePath(); PrintWriter file = new PrintWriter(new File(path+”EncryptedMessage.txt”)); for (int i = 0; i <EncryptCodes.length; i++) { file.write(EncryptCodes[i]+ " \r\n"); } file.close(); } 忽略变量名称,此方法的作用是在名为EncryptedMessage.txt的项目文件夹内生成的txt文件中写入EncryptCodes数据。 我需要的是一种保存该txt文件而不是项目文件夹的方法,以便在运行期间保存在用户指定的位置(打开另存为对话框)。 我认为它可以由JFilechooser完成,但我无法让它工作。

这两种方法是否与Java中最小的Double值相当?

替代措辞 :何时将Double.MIN_VALUE添加到Java中的double 不会导致不同的Double值? (见Jon Skeet的评论如下) 这个关于Java中最小Double值的问题有一些答案在我看来是等价的。 Jon Skeet的回答无疑是有效的,但他的解释并没有让我相信它与理查德的 答案有什么不同。 Jon的回答使用以下内容: double d = // your existing value; long bits = Double.doubleToLongBits(d); bits++; d = Double.longBitsToDouble(); 理查兹回答提到了Double.MIN_VALUE的JavaDoc 保持double类型的最小正非零值的常量,2-1074。 它等于hex浮点字面值0x0.0000000000001P-1022,也等于Double.longBitsToDouble(0x1L) 。 我的问题是, Double.logBitsToDouble(0x1L)与Jon的bits++; Double.logBitsToDouble(0x1L)不同bits++; ? Jon的评论侧重于基本的浮点问题。 将Double.MIN_VALUE添加到double值和增加表示double的位模式之间存在差异。 由于存储浮点数的方式,它们是完全不同的操作。 如果您尝试将非常小的数字添加到一个非常大的数字,差异可能很小,以至于最接近的结果与原始数字相同。 但是,向当前位模式添加1将始终将相应的浮点值更改为在该比例下可见的最小可能值。 我没有看到Jon添加Double.MIN_VALUE增加长“bit ++”的方法有什么不同。 什么时候会产生不同的结果? 我编写了以下代码来测试差异。 也许有人可以提供更多/更好的样本双数或使用循环来找到存在差异的数字。 double d = 3.14159269123456789; // sample double long bits = Double.doubleToLongBits(d); long […]

Netbeans Logger

我一直在使用Netbeans作为Java的IDE进行开发。 当Netbeans在try-catch块中包含一个语句时,它使用类似Logger.getLogger(MyTestClass.class.getName()).log(Level.SEVERE, null, ex);东西Logger.getLogger(MyTestClass.class.getName()).log(Level.SEVERE, null, ex); 在捕捞区域。 我的问题是 这句话创建的日志文件是什么,在哪里? 我应该创造它吗? 如果是这样,怎么样? 干杯!

使用java,hibernate web应用程序一次限制用户登录单个会话而不使用spring

我正在使用Java,Hibernate和JSF开发Web应用程序。 我希望用户限制只登录到单个会话,即如果用户已经登录,我也不希望在不注销第一个会话的情况下从其他位置登录。 任何人都可以帮助我们知道如何实现这一目标。 根据我的要求,我不能使用弹簧或其任何function。

我们可以使用for-each循环来迭代Iterator类型的对象吗?

如果我们执行以下操作,则会收到错误: class FGH{ public static Iterator reverse(List list) { Collections.reverse(list); return list.iterator(); } public static void main(String[] args) { List list = new ArrayList(); list.add(“1”); list.add(“2”); list.add(“3”); /*for(Iterator it:reverse(list)) Iterator it=reverse(list);*/ for (Object obj: reverse(list)) System.out.print(obj + “, “);}} 但是如果我们像这样修改代码我们就不会得到错误,那么它是否意味着我们不能迭代Iterator类型的对象? : class FGH{ public static Iterator reverse(List list) { Collections.reverse(list); return list.iterator(); } public static […]

翻转hex字符串

根据这里提出的另一个问题, 拆分一个没有空格的hex字符串并将其翻转 ,我在这里更清楚地写出这个新问题。 我有一个这样的Hex字符串: Hex_string = 2B00FFEC 我需要的是将Hex字符串的顺序更改为从最新字符开始,所以这将是这样的: Fliped_hex_string = ECFF002B 在另一个问题中,我问了一种使用.split()方法实现此目的的方法。 但应该有另一种方式来更好地实现这一目标。

如何保存常量更新,最后将输出保存为XMLModifier文件

我有不同的方法尝试根据路径更新/删除元素/令牌。 现在,每个方法在完成编辑后,立即保存为文件, VTDGen vg = new VTDGen(); vg.parseFile(“input.xml”, false); vn.getNav(); AutoPilot ap = new AutoPilot(vn); XMLModifier xm; public void updateToken(String path) { xm = new XMLModifier(vn); ap.selectXPath(path); …… xm.updateToken(i,”hello”); …… xm.output(“output.xml”); } 如果我继续再次调用此方法,它会保存,但它会用新的更改覆盖文件,我不希望这样,所以我该怎么做? 我也试过用 xm.outputAndReparse(); 我将更新保存回NTDNav vn , NTDNav vn用其余方法,但它会破坏方法移动到节点的其余部分(使用AutoPilot)。 我想要的:调用方法根据路径更新令牌,保存更新,并使用另一个路径再次调用该方法,最后在完成更新后,保存到文件中。 如果我有任何错误,请告诉我,因为我还是VTD-XML的新手。 谢谢。 搞定了,这就是我所做的。 VTDGen vg = new VTDGen(); vg.parseFile(“input.xml”, false); vn.getNav(); AutoPilot ap = […]

模式匹配使用贪婪和不情愿

在java regex我读过有关Greedy和Reluctant Quantifiers的内容 。 他们提到了 一个不情愿或“非贪婪”的量词首先尽可能少地匹配。 所以。*首先匹配任何内容,使整个字符串无法匹配 在这个例子中 来源: yyxxxyxx 模式: .*xx 贪心量词*并产生 0 yyxxxyxx 不情愿的资格赛*? ,我们得到以下内容: 0 yyxx 4 xyxx 为什么yxx , yxx结果不可能,即使它是可能的最小值?