当前位置: 首页 > 知识库问答 >
问题:

在PaintComponent中,图形2D完成绘制后,是否可以获得自适应的宽度和高度?

呼延鹏云
2023-03-14

是否可以在方法PaintComponent中获得Graphics2D实例绘制了多少宽度和高度?

例如,在下面的MessageUnit中,

    class MessageUnit extends JPanel {
        String msg;
        JPanel msgBox;

        public MessageUnit(String msg, JPanel msgBox) {
            this.msg = msg;
            this.msgBox = msgBox;
            setPreferredSize(new Dimension(msgBox.getWidth(), 10));
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            final Graphics2D g2D = (Graphics2D) g;
            g2D.drawString(msg, 10, 30);
        }
    }

共有1个答案

相化
2023-03-14

如果你只需要画一个字符串,你可以根据字体和字符串本身得到它未来的大小。

public static void setSizeFromFont(Component component, Font font, String text){
    component.setSize((int)(Math.ceil(component.getFontMetrics(font).stringWidth(text))), font.getSize());
  }
 类似资料:
  • 问题内容: 为什么下面的代码返回高度:-1,这意味着高度未知。如何获得图像的高度? 问题答案: 使用ImageIO.read(URL)或ImageIO.read(File)代替。加载时它将阻塞,返回后将知道图像的宽度和高度。 例如 或者,MediaTracker向由异步加载的映像中添加A ,Toolkit然后等待其完全加载。

  • 问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。

  • 唯一的问题是当我试图从齐次剪辑空间转换到眼睛空间时,我使用了错误的投影矩阵。之所以投影矩阵是错误的,是因为我无法得到相机空间的正确宽度和高度。我使用了这个库库,当我向前和向后移动拍照手机时,我预计相机的宽度和高度会发生变化,因为相机的空间大小应该在向前移动时变小,反之亦然。 作为最后的手段,目前我试图自己找到相机的空间大小,我如何实现这一点? 这是我的投影矩阵 当前凸轮宽度和当前凸轮高度总是恒定的

  • 我有一个Vue组件,在它里面我有一个img,我需要得到图像尺寸,最好是在显示图像之前(通过宽度或高度来适应容器)。 该代码可能无法工作,映像src可以返回401(还不确定),我们使用代理并从服务器上的存储桶中获取该文件。比如/api/getStorageResource?斑点= 我能做什么呢? 有了链接,我可以通过axios获取图像并将其设置为元素,而不是

  • 问题内容: 我正在尝试使Java 2D图形“ hello world”运行起来,并发现它异常困难(即,我正在搜索“ java hello world example”的变体,然后变成空白)。有人能帮我举一个最小的世界范例吗? 编辑 不过,这是一个不错的起点,“ Java教程:执行自定义绘画” 。 问题答案: 要在Swing中绘制矩形,您应该: 首先,永远不要直接在JFrame或其他顶级窗口中绘制。

  • 本文向大家介绍javascript原生和jquery库实现iframe自适应高度和宽度,包括了javascript原生和jquery库实现iframe自适应高度和宽度的使用技巧和注意事项,需要的朋友参考一下 javascript原生和jquery库实现iframe自适应内容高度和宽度---推荐使用jQuery的代码! 基于Jquery库的代码很好实现: ‍基于JS原生代码的实现: 只需在你被ifr