草庐IT

java - 如何让 swing 应用程序知道屏幕尺寸的变化?

当我的swing应用程序正在运行时,我更改了屏幕的大小(例如,从1024x768到800x600)。是否有任何事件我可以收听以获得有关此的通知?或者,我可以每隔几秒检查一次屏幕尺寸,但Toolkit.getScreenSize()一直告诉我旧值。更改后如何获得真实屏幕尺寸?环境:Linux(在SuSEES11和Ubuntu9.04上测试)感谢您的帮助。马顿 最佳答案 以下对我有用,但我使用的是Mac,所以我不能确定它是否适用于Linux:System.out.println(GraphicsEnvironment.getLocalG

尽管指定了 USE_COMPUTED_SIZE,JavaFX 和 Scene Builder 仍会剪辑场景边缘

我正在使用SceneBuilder(v11.0.0)为JavaFX(v12)中的场景创建FXML文件,但是,尽管指示所有容器USE_COMPUTED_SIZE以获得首选的宽度和高度,渲染的场景(如在SceneBuilder中所见,以及作为加载这些FXML文件的JavaFX应用程序运行时)在右侧和底部边缘被剪裁,以便切掉一些节点。在SceneBuilder中,渲染器似乎必须知道场景不符合允许的边界,因为编辑器显示蓝色边界标记,这些标记明显超出了渲染矩形。在场景生成器中查看SceneBuilder中的View显示底部需要更多空间以便为按钮提供足够的空间(按钮的底部边缘和TitledPane

java - 异常的内存分配

您能解释一下,Exception实例或其子实例在内存中的分配位置吗?是堆还是栈,还是别的?谢谢! 最佳答案 对于大多数JVM来说,所有的Object都是在堆上创建的,Exception也不异常(exception)。;)JVM可以使用EscapeAnalysis在堆栈上分配对象,但这通常仅限于仅在一种方法中使用且不返回的对象。也就是说,Exceptions不太可能是一个好的候选者。在许多JVM上创建Throwables(包括Exception)的方式的一个特别之处在于,直到需要它们时才会创建堆栈跟踪元素。这是因为大多数时候不需要它们

Java教科书: "the size of an array must be known at compile time"

我刚刚浏览了我的一本旧教科书,发现了这段在Java中定义数组的文章:Aone-dimensionalarrayisastructuredcompositedatatypemadeupofafinite,fixedsizecollectionoforderedhomogeneouselementstowhichthereisdirectaccess.Finiteindicatesthatthereisalastelement.Fixedsizemeansthatthesizeofthearraymustbeknownatcompiletime,butitdoesn’tmeanthatal

Java List size() 性能和技巧

这个问题在这里已经有了答案:Java-Differencebetweenforloopterminatingexpression(6个答案)关闭8年前。我想知道.size()的性能方法。此方法是否从列表中的对象数返回引用(就像每次将对象添加到列表时递增的类成员)?还是遍历所有对象?哪个更有效率?调用.size()每次:Listobjects=getCoords();for(intx=0;x或者通过保存到局部变量:Listobjects=getCoords();intsize=objects.size();for(intx=0;x假设列表中有>30.000个对象。哪个更快/更高效?如果我

java - Guava CacheBuilder 最大尺寸

我想弄清楚您在GuavaCacheBuildermaximumSize()中指定的数字代表什么。假设我的代码中有这样的东西,CacheprogramCache=CacheBuilder.newBuilder().maximumSize(1000).build();我指定为最大大小的1000是否意味着在它开始踢出LRU之前我可以在缓存中拥有一千个不同的条目(无论对象可能有多大)?如果是这种情况,对象的大小是否有限制?或者1000是否意味着,我有1000mb(MB正确吗?)可以使用,并且在它开始踢出LRU之前,我可以在缓存中拥有尽可能多的对象,最多1000mb?

java - 当我使用 computeIfAbsent 计算斐波那契数时,hashmap size() 返回不正确的值

我有以下代码:importjava.math.BigInteger;importjava.util.HashMap;importjava.util.Map;publicclassDynamicFib{privatestaticMapmyMap=newHashMap();static{myMap.put(0,BigInteger.ZERO);//fibonacci(0)myMap.put(1,BigInteger.ONE);//fibonacci(1)}publicstaticBigIntegerfibonacci(intx){//System.out.println("x=["+x+"

java - DEFAULT_SIZE 和 PREFERRED_SIZE 有什么区别?

我正在使用SwingGroupLayout,我对GroupLayout.DEFAULT_SIZE和GroupLayout.PREFERRED_SIZE的值感到困惑。我永远不知道什么时候在GroupLayout.addComponent(Component,int,int,int)这样的方法中使用它们中的每一个。假设我有这段代码:GroupLayoutl=...;l.setHorizontalGroup(l.createSequentialGroup().addComponent(tf1).addComponent(tf2));l.setVerticalGroup(l.createPar

java - 'originalValue.length > size' 怎么会出现在 String 构造函数中?

下面是String类的构造函数publicString(Stringoriginal){intsize=original.count;char[]originalValue=original.value;char[]v;if(originalValue.length>size){//ThearrayrepresentingtheStringisbiggerthanthenew//Stringitself.Perhapsthisconstructorisbeingcalled//inordertotrimthebaggage,somakeacopyofthearray.intoff=or

java - 分析堆转储,Map#size() 不是一个函数?

得到这个奇怪的错误:javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:TypeError:size不是一个函数,它是空的。(#1)在VisualVM上分析堆转储并运行此OQL查询时:select{map:x}fromjava.util.concurrent.ConcurrentHashMapxwherex.size()问题出在where子句上,虽然Map显然有一个size方法,但不知何故它不起作用。 最佳答案 @ruakh的回答非常好