草庐IT

resize - AWT 自定义呈现 - 捕获平滑的调整大小并消除调整大小闪烁

几个月来我一直在研究这个,这是迄今为止我想到的最好的。结构(在EDT之外呈现)无可争议,因为我们的应用程序以这种方式运行并且不会被重写。该应用程序具有集成的布局模型和脚本模型并驱动渲染,因此渲染必须在AWT绘制模型之外执行。我试图达到的是执行自定义渲染的最佳且可靠的方式。以下SSCCE对我们来说效果很好。但是,在调整帧大小时,它有两个缺点:偶尔会出现闪烁,尤其是在快速调整大小时从paint()调用调用调整大小(通过此处的checkSize)的“平滑调整大小”技巧仅适用于扩展。缩小帧时,它通常在释放鼠标按钮之前不会呈现此外,但在这里不是很明显,它确实会偶尔抛出IllegalStateEx

java - 在 JTree 节点中动态调整 JTextField 的大小

我正在使用带有一些JLabel和JTextFields的JPanel作为JTree中的编辑器和渲染器。用户可以单击任何JTextField并修改文本。一切正常。我所缺少的是如何在用户输入时动态调整(增大)JTextField的大小。下面是一个说明问题的小示例程序。单击即“颜色”并输入一些其他字符。JTextField保持其大小,这是预期的,但我希望它增大和缩小以适应文本。我尝试了不同的布局管理器,计算了JTextField和JPanel的preferredSize,调用了invalidate()和JPanel以及Tree等等,但没有成功。有什么想法吗?importjava.awt.Co

java - 如何平滑地根据容器大小自动调整多个 JLabel 的字体大小?

我需要根据用于调整容器大小的比例因子调整多个JLabel的字体大小。为此,我将每个JLabel的字体设置为null,以便它们采用容器的字体。它有效,但它也会产生奇怪的结果。具体来说,文本似乎“滞后于”容器,有时甚至被截断。我想避免这种行为。知道怎么做吗?模拟行为的示例代码:importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.GridBagConstraints;import

java - 我必须调整 JFrame 的大小才能显示内容。我该如何解决?

当我运行我的gui时,我必须调整窗口大小才能显示所有内容。有人知道问题出在哪里吗? 最佳答案 在添加所有组件之后调用setVisible(true)之前调用JFrame上的pack()。 关于java-我必须调整JFrame的大小才能显示内容。我该如何解决?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5498821/

java - 为什么 HashMap#resize 实现如此复杂?

看完sourcecode在java.util.HashMap#resize中,我对某些部分感到非常困惑-即当某些bin具有多个节点时。else{//preserveorderNodeloHead=null,loTail=null;NodehiHead=null,hiTail=null;Nodenext;do{next=e.next;if((e.hash&oldCap)==0){if(loTail==null)loHead=e;elseloTail.next=e;loTail=e;}else{if(hiTail==null)hiHead=e;elsehiTail.next=e;hiTai

java - 如何检测 JavaFX 中完成的调整大小操作?

我有一个舞台、一个场景和一个WebView节点。当我将窗口扩大到更大尺寸时-由于WebView,事情变得相当缓慢。我想要做的是在窗口大小调整完成后为WebView仅填充新空间(这是我在可调整大小的控件/边缘上释放鼠标左键窗口)。现在我可以设置最大值。此节点的大小为默认值-这将阻止它扩展。但是我怎样才能检测到窗口上完成调整大小操作的实际事件呢?通过绑定(bind),我可以验证调整大小是否发生-但它是瞬时的(W和D的属性会立即更改而不释放LMB),而我只需要在释放LMB时执行操作。有什么建议吗?我尝试在stage上为Event.ANY使用addEventFilter,只是为了看看这个事件类

java - 为什么 Java ArrayLists 不会自动收缩

很久以前看了普林斯顿CourseraMOOC的视频讲座:算法导论,可以找here.它解释了在向结构中添加或删除元素时调整类似结构的ArrayList的成本。事实证明,如果我们想为我们的数据结构提供大小调整,我们将从O(n)到amortizedO(n)foradd和remove操作。我已经使用JavaArrayList几年了。我一直确信它们会自动增长和收缩。直到最近,令我非常惊讶的是,我在thispost中被证明是错误的.JavaArrayList不会自动收缩(尽管它们当然会增长)。这是我的问题:在我看来,在ArrayList中提供收缩不会造成任何损害,因为性能已经摊销O(n)。为什么J

java - 获取多行流布局的首选大小

我想不出一种方法来调整swingGUI中某些组件的大小。一些自定义标签被添加到FlowLayout中,这在调整对话框大小时不正常。该面板是使用jgoodies表单框架构建的。如果使用这个,FlowLayout被添加到xy(3,y)FormLayoutlayout=newFormLayout("r:d,5px,f:d:g",//columns"p,p,5px,p,5px,p")//rowsFlowLayout展开并显示滚动条如果使用FormLayoutlayout=newFormLayout("r:d,5px,f:10:g",//columns"p,p,5px,p,5px,p")//ro

JavaFX - 调整屏幕大小时调整 Canvas 大小

我正在处理我在JavaFX中构建的关卡编辑器的GUI,我希望能够将Canvas对象的大小调整为新的拆分Pane尺寸。似乎我尝试过的一切都失败了。这包括将Pane对象传入并直接使用其宽度,使用窗口大小监听器并将宽度和高度属性绑定(bind)到拆分Pane的属性。有任何想法吗?这是调整大小之前的样子:调整大小后:有人有什么想法吗?该类的代码非常广泛,但调整大小的代码将包含在此处:publicCanvascanvas;publicStringtabTitle;publicVBoxlayout;publicGraphicsContextg;publicCorecore;publicCanvas

java - 如何在调整浏览器大小时调整 java applet 的大小?

我有一个使用object-comment-embed方法嵌入到html中的javaapplet。每当调整浏览器窗口大小时,我都想调整小程序的大小。我在Internet上找到了解决方案,但它们都基于已弃用的applet标记。此外,当尝试在FireBug中对我的embed元素调用setSize()时,它会调整小程序内容的大小,但不会调整小程序视口(viewport)的大小。也就是交给java的显示区域是不变的。当前代码看起来像这样:functionresize(){min_width=300;min_height=200;frame_width=0;frame_height=0;if(pa