当前位置: 首页 > 面试题库 >

如何在Java中更改图比例

鱼渝
2023-03-14
问题内容

我有一个图表,其中x轴显示时间,y轴显示我的数据。我想通过为x轴选择不同的指标来更改比例。例如
秒,分钟和小时刻度。默认值为秒。因此,如果选择分钟,则图表应该更小且更弯曲。任何的想法?UI
尚未完成,但是您假设将有x和y轴。的参数度确定其应被缩放到第二(度= 1),分钟(度= 60)或小时(度= 3600)

private void drawLines(Graphics g, ArrayList<Point> points,int degree) throws Exception {

    if (points == null || points.isEmpty()) {
        throw new Exception("No points found!!!");
    }

    for (int i = 0; i < points.size() - 1; i++) {

        Point firstPoint = points.get(i);
        Point secondPoint = points.get(i + 1);

        g.drawLine((int) firstPoint.getX(), (int) firstPoint.getY(), (int) secondPoint.getX(),
                (int) secondPoint.getY());
    }

}

问题答案:

考虑使用jfreechart,它将缩放图形以填充封闭的容器。中看到的示例
这里,封闭容器是一个ChartPanel被添加到该CENTER帧的默认的
BorderLayout。这将使图形随着封闭框架的大小而增大和缩小。

该通用方案使用线性插值法映射模型和视图坐标。给定以下比例,您可以相乘并求解丢失的坐标,如此完整
示例所示,该示例将鼠标坐标映射到图像中的像素坐标。

view.x : panelWidthInPixels :: model.x : modelXRange
view.y : panelHeightInPixels :: model.y : modelYRange

我不想使用JFreeChart。还有其他办法吗?

是的,正如@MadProgrammer评论一样,您可以

使用上面显示的比例将数据缩放到封闭容器中。引用的示例隔离了基本方法。JFreeChart是一个功能齐全的示例。

使用缩放比例将渲染的图像缩放到封闭的容器BufferedImage。本示例将 ComponentHandler绘制成一个BufferedImage大小足以填充附件的JPanel。该background图像在的实现中呈现paintComponent()。调整框架大小以查看效果。

使用应用于图形上下文的变换将渲染的图像缩放到封闭的容器。



 类似资料:
  • 问题内容: 好的,所以我一直在研究这一点。我对Java还是很陌生,但认为这很容易。我已经尝试了本网站上已回答的所有方法,但仍然没有运气,通常,当我在这里查看时,我能够找到适合我所寻找答案的答案。有谁知道如何更改JFrame右上角的Java图标。我非常肯定它不是我的文件路径,因为我的所有图像都在同一个文件夹中并且都可以工作,这是我似乎无法使用的唯一文件。 这是我的程序主菜单代码的第一部分,除我尝试添

  • 好的,所以我一直在安静地研究这个。我对java相当陌生,但认为这个会很容易。我尝试了几乎所有在这个网站上得到答案的方法,但仍然没有运气,通常当我看这里的时候,我能够找到一个符合我所寻找的答案。有人知道如何更改JFrame顶角的Java图标吗?我很确定这也不是我的文件路径,因为我所有的图像都在同一个文件夹中,它们都可以工作,这是我唯一无法工作的。 这是我的程序主菜单的第一部分代码,除了尝试添加图标图

  • 问题内容: 我正在尝试使用Swift更改UIButton的图像…我该怎么办 这是OBJ-C代码。但是我不知道Swift: 问题答案: 从您的Obc-C代码中,我认为您想为按钮设置图片,因此请尝试以下方式: 简而言之: 对于Swift 3:

  • 在我的应用程序中,当测试人员测试应用程序时,日期和时间需要频繁更改。目前,我们必须使用系统命令date-s来更改系统时间,但这将导致服务器上的其他应用程序也受到影响。我只想更改这个应用程序的日期(),不想更改应用程序本身,因为有太多地方使用了新的日期

  • 问题内容: 因此,如何在Java(Windows系统)中更改文件夹的图标,是否有类或某些原因导致我搜索了却找不到任何东西? 问题答案: 根据注释,您正在谈论的文件夹图标是在文件夹本身的隐藏“ ini”文件中指定的。 您 可以 通过将其读取为文本等方式 来 创建/修改文件,但是使用现有的第三方Java库更简单。我已经成功使用了开源ini4j Java库。