gpt4 book ai didi

java - 当我无法实例化 Graphics 对象时,如何调用需要 Graphics g 的方法,因为它是抽象的?

转载 作者:行者123 更新时间:2023-11-30 08:52:31 25 4
gpt4 key购买 nike

我需要找到用于间距目的的字体大小,发现这很有帮助:https://docs.oracle.com/javase/tutorial/2d/text/measuringtext.html

但是,我不确定如何才能正确解决这个问题。

public Dimension getFontSize(Graphics g, JLabel l){
Graphics2D g2 = (Graphics2D)g;

FontMetrics metrics = g2.getFontMetrics(titleFont);

return new Dimension(metrics.stringWidth(l.getText()), metrics.getHeight());

我想我可能必须在这里采用替代方法,但我不确定该怎么做,因为我不清楚 Graphics 的工作原理。任何见解将不胜感激。

最佳答案

如果您想要 GUI 中某个组件的字体指标,那么您可以通过直接在组件上调用 getFontMetrics(Font font) 来直接从该组件获取它的 FontMetrics。否则,如果您要绘制到 BufferedImage,则可以通过在 BufferedImage 上调用 getGraphics() 来在呈现(或之后)之前提取其 Graphics 对象。

public Dimension getFontSize(JLabel label){
FontMetrics metrics = label.getFontMetrics(titleFont);
return new Dimension(metrics.stringWidth(label.getText()), metrics.getHeight());
}

无论您做什么,都不要在 GUI 组件渲染之前调用 getGraphics(),因为那样会返回 null。

关于java - 当我无法实例化 Graphics 对象时,如何调用需要 Graphics g 的方法,因为它是抽象的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30156404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com