gpt4 book ai didi

Java 拉伸(stretch)图标以适合按钮

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:59:29 24 4
gpt4 key购买 nike

我正在尝试调整图标的大小,使其覆盖整个按钮并位于按钮的中央。当我尝试时,它会拉伸(stretch)我的按钮并弄乱其他一切。我该怎么做?目前,我的代码是:

在我的一个类的构造函数中..

javax.swing.JButton Console = new javax.swing.JButton;
ScaleButtonImage(Console, ConsoleEnabledImage);

在那个类中..

private void ScaleButtonImage(javax.swing.JButton Button, java.awt.Image ButtonIcon) {
double Width = ButtonIcon.getWidth(Button);
double Height = ButtonIcon.getHeight(Button);
double xScale = 28/Width;//Button.getWidth() / Width;
double yScale = 28/Height;//Button.getHeight() / Height;
double Scale = Math.min(xScale, yScale); //ToFit
//double Scale = Math.max(xScale, yScale); //ToFill
java.awt.Image scaled = ButtonIcon.getScaledInstance((int)(Scale * Width), (int)(Scale * Height), java.awt.Image.SCALE_SMOOTH);
Button.setIcon(new javax.swing.ImageIcon(scaled));
}

布局:

.addGroup(layout.createSequentialGroup()
.addComponent(Enable, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Graphics, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Debug, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Console, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

然后我将所有这些都水平和垂直链接起来,使它们的大小都相同。

相反,它最终看起来像下面这样。另外,如果我更改第一个按钮的图标,所有按钮的大小都会因为我的限制而改变。如何使图标适合按钮?

enter image description here

最佳答案

尝试这样的事情(如果我没有在括号中犯任何错误):

JButton button = new JButton(new ImageIcon(((new ImageIcon(
"path-to-image").getImage()
.getScaledInstance(64, 64,
java.awt.Image.SCALE_SMOOTH)))));

这样你的图像将被调整大小(在我的例子中为 64x64 大小)并添加到 button,就像这里的这个例子:

enter image description here

编辑:

这是调整图像大小并保持图像比例的方法:

ImageIcon ii = new ImageIcon("path-to-image");
int scale = 2; // 2 times smaller
int width = ii.getIconWidth();
int newWidth = width / scale;
yourComponent.setIcon(new ImageIcon(ii.getImage().getScaledInstance(newWidth, -1,
java.awt.Image.SCALE_SMOOTH)));

关于Java 拉伸(stretch)图标以适合按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13810213/

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