草庐IT

java - Java 中的字符串长度(以像素为单位)

给定一个不使用任何GUI组件的特定java.awt.Font对象,是否有一种方法可以计算字符串的长度(以像素为单位)? 最佳答案 thatdoesnotuseanyGUIcomponents?这取决于你在这里的意思。我假设您的意思是您想在不收到HeadlessException的情况下执行此操作。最好的方法是使用BufferedImage。据我所知,这不会抛出HeadlessException:Fontfont=...;BufferedImageimg=newBufferedImage(1,1,BufferedImage.TYPE_

java - 如何计算 java.awt.geom.Area 的面积?

我正在寻找一种方法来计算java.awt.geom.Area的任意实例的面积(以像素为单位)。背景:我的应用程序中有可能重叠的Shape。我想知道有多少Shape与另一个重叠。Shape可能会倾斜、旋转等。如果我有函数area(Shape)(或Area),我可以使用两个Shape的交集,如下所示:doublefractionObscured(Shapebottom,Shapetop){Areaintersection=newArea(bottom);intersection.intersect(newArea(top));returnarea(intersection)/area(bo

java - 如何绘制表示连接节点图的树?

我想在JavaGUI中显示一棵树,但我不知道怎么做。树表示连接节点的图形,如下所示:我应该说我有自己的树类:publicclassBinaryTree{privateBinaryNoderoot;publicBinaryTree(){root=null;}publicBinaryTree(ObjectrootItem){root=newBinaryNode(rootItem,null,null);}publicBinaryTree(ObjectrootItem,BinaryNodea,BinaryNodeb){root=newBinaryNode(rootItem,a,b);}publ

java - mouseDragged 不返回适当的按钮

我如何知道从mouseDragged事件中按下的按钮?我在mouseDragged()中遇到问题,因为接收到的MouseEvent为getButton()返回0。我对鼠标位置没有问题,甚至检测鼠标点击也没有问题。mouseClicked()事件为getButton()返回相应的按钮。关于我如何做到这一点有什么建议吗?我假设我可以使用mouseClicked或mousePressed进行变通,但我更愿意将其全部保存在mouseDragged中。感谢您的时间和回答。 最佳答案 正如评论和其他答案中所指出的,SwingUtilities为

java - 如何在java中以全屏独占模式处理来自键盘和鼠标的事件?

在被动渲染模式下,可以使用KeyListener和ActionListener接口(interface)来处理来自用户的事件。全屏模式下正确的事件处理方式是什么?请扩展此框架,为鼠标单击和按键事件提供实现,请不要膨胀您的示例(示例启动全屏独占模式,使用Timer更新窗口中的图形):importjava.applet.Applet;importjava.awt.Color;importjava.awt.DisplayMode;importjava.awt.Graphics2D;importjava.awt.GraphicsConfiguration;importjava.awt.Grap

java.awt.AWTError : BoxLayout can't be shared 错误

这个问题在这里已经有了答案:erroruponassigningLayout:BoxLayoutcan'tbeshared(4个答案)关闭5年前。我在设置布局之前已经初始化了MotePanel、CommandPanel和LEDPanel,那么我怎么会得到这个异常。请帮忙。Exceptioninthread"main"java.awt.AWTError:BoxLayoutcan'tbesharedatjavax.swing.BoxLayout.checkContainer(BoxLayout.java:462)atjavax.swing.BoxLayout.invalidateLayou

JAVA SWT/AWT Eclipse Mac OSX Java Cocoa CompatibilityMode Enabled

我正在开发一个相当复杂的Java应用程序,混合了Swing和SWT。每当我启动应用程序时,这是控制台输出(应用程序未显示):2012-12-1912:45:45.359java[3442:f07][JavaCocoaComponentcompatibilitymode]:Enabled2012-12-1912:45:45.360java[3442:f07][JavaCocoaComponentcompatibilitymode]:SettingtimeoutforSWTto0.100000我遵循了许多指南和教程设置:System.setProperty("com.apple.awt.C

java - 将 ButtonGroup 添加到 JPanel

JPanel.add(ButtonGroup);不工作。我必须将它添加到JPanel,因为我正在使用选项卡。这真是令人沮丧。我还没有找到办法 最佳答案 由于ButtonGroup不是组件,因此您不能将ButtonGroup添加到JPanel。而是将按钮添加到JPanel,例如:JPaneljPanel=newJPanel();ButtonGroupgroup=newButtonGroup();btn1=newJRadioButton("btn1");btn1.setSelected(true);btn2=newJRadioButto

Java AWT 自定义 CompositeContext 和抗锯齿 : RasterFormatException when drawing outside of the client area

我正在尝试实现SWTGC类似AWT的异或模式绘图Graphics2D.使用内置XORComposite不是一个选项,因为它不像在SWT中那样实现异或模式绘图。SWT异或模式绘图通过二进制异或组合源颜色和目标颜色。AWTXORComposite(可通过g2d.setXORMode(Color)使用)使用常量xor-color,它通过二进制异或与源颜色组合,即目标颜色不影响结果颜色。所以我想到的唯一选择是自己编写Composite和CompositeContext适当结合源和目标的实现。经过一些阅读,我想到了这个简单的实现:(是的,我知道getPixel(...)、setPixel(...

java - EventQueue.isDispatchThread() 中的无限循环

我有一个Java程序占用了100%的CPU,但似乎什么也没做。如果我进行线程转储,则有4个线程(在5个线程池中)等待获取锁。"IncomingWorkPool5"-Threadt@363java.lang.Thread.State:WAITINGatsun.misc.Unsafe.park(NativeMethod)-waitingtolock(ajava.util.concurrent.locks.ReentrantLock$NonfairSync)ownedby"IncomingWorkPool3"t@354atjava.util.concurrent.locks.LockSupp