我想在程序中 JTextArea
中当前插入符位置下方显示 JDialog
。我尝试使用 modelToView() 来获取插入符号位置,但是当我以这种方式使用 JDialog 的 setLocation() 方法时,我我无法获得所需的位置。
Rectangle r=jTextArea.modelToView(jTextArea.getCaretPosition());
jDialog.setLocation(r.x,r.y+jTextArea.getFontMetrics(jTextArea.getFont()).getHeight());
另外,谁能告诉我为什么这个代码片段没有按预期的方式工作?
最佳答案
矩形可能是相对于父组件的。您需要将位置翻译到屏幕上
SwingUtilities.convertPointToScreen(r.getLocation(), jTextArea);
jDialog.setLocation(pos.x,pos.y+jTextArea.getFontMetrics(jTextArea.getFont()).getHeight());
我没有尝试过,但我认为......
jDialog.setLocation(pos.x,pos.y+r.height);
可能会更干净......?
关于java - 在插入符号位置下方显示 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823565/