我需要减小没有文本的JCheckBox项的大小。到目前为止,我尝试覆盖方法getPreferredSize()
和getMaximumSize()
。设置字体大小或JCheckBox本身的大小也不会引起任何更改。有没有办法实现这个目标?
答案 0 :(得分:2)
如果您正在谈论添加到JCheckBox的图标,那么最好是从新图像创建一个新图标,该图像是原始图像的大小调整。您可以通过调用yourImage.getScaledInstance(...);
方法对图像执行此操作。获得新图像后,创建一个new ImageIcon(newImage)
并将其与JCheckBox一起使用。
e.g。
Image oldImage = oldIcon.getImage();
Image newImage = oldImage.getScaledInstance(newWidth, newHeight,
Image.SCALE_DEFAULT);
Icon newIcon = new ImageIcon(newImage);
checkBox.setIcon(newIcon);
答案 1 :(得分:0)
getPreferredSize
和getMaximumSize
仅分别为preferredSize
对象返回分配给maximumSize
和JCheckBox
的值。如果您想更改这些值,请改为使用setPreferredSize
和setMaximumSize
:
jCheckBox.setPreferredSize(new Dimension(100, 300));
和/或:
jCheckBox.setMaximumSize(new Dimension(200, 600));
答案 2 :(得分:0)
您可以像这样覆盖绘画功能:
final JCheckBox cb = new JCheckBox("",autoChangeTab) {
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.scale(.9, .9);
super.paint(g);
}
};