gpt4 book ai didi

java - 将 Swing 控制分成相等的部分

转载 作者:行者123 更新时间:2023-12-01 16:12:06 26 4
gpt4 key购买 nike

我知道这将是一个愚蠢的问题。请原谅我是一名 CS 新手

我有一个继承自 JComponent 的新 swing 组件。我试图在其表面上绘制线条,以表明这些线条将控件分成相等的部分。代码看起来像

int spc;
spc = (int) Math.round((this.ZBar.getWidth() / this.ZBar.getModel().getModelSize()));

for (int i = 0; i <= this.ZBar.getModel().getModelSize(); i++) {
g.drawLine(i * spcing, 0, i *, this.ZBar.getHeight());

}

this.ZBar.getModel().getModelSize();给出要分割成的部分的数量。但是,在某些情况下,组件的最右端还留有更多空间。我猜这是 Math.round 完成的类型转换的原因。我该如何解决这个问题?

最佳答案

因为该除法是int型除法。例如:

5 / 2 == 2

Math.round 在这里什么也没做。它已经被四舍五入(作为 Math.floor 代替)。

要获得预期的效果,请在除法之前将 int 转换为 double:

(double)5 / 2 == 2.5

或者根据您的具体情况:

spc = (int) Math.round(((double)this.ZBar.getWidth() / this.ZBar.getModel().getModelSize()));

关于java - 将 Swing 控制分成相等的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741619/

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