如何减小JCheckBox图标的大小?

时间:2014-02-18 15:18:05

标签: java swing jcheckbox

我需要减小没有文本的JCheckBox项的大小。到目前为止,我尝试覆盖方法getPreferredSize()getMaximumSize()。设置字体大小或JCheckBox本身的大小也不会引起任何更改。有没有办法实现这个目标?

3 个答案:

答案 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)

getPreferredSizegetMaximumSize仅分别为preferredSize对象返回分配给maximumSizeJCheckBox的值。如果您想更改这些值,请改为使用setPreferredSizesetMaximumSize

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);
    }
};