JCheckBox 可以有不同的状态图标,包括默认图标,选定的图标,禁用的图标,按下的图标或过渡图标等。请参见下面的代码并尝试一下。
package org.nhooo.example.swing;
import javax.swing.*;
import java.awt.*;
public class JCheckBoxCustomIcon extends JFrame {
public JCheckBoxCustomIcon() throws HeadlessException {
initialize();
}
private void initialize() {
setSize(300, 300);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.LEFT));
// 创建带有文本标签的复选框
JCheckBox checkBox = new JCheckBox("Check me!");
checkBox.setSelected(true);
// 设置复选框的默认图标
checkBox.setIcon(new ImageIcon("icon.png"));
// 选择复选框状态时设置选择的图标
checkBox.setSelectedIcon(new ImageIcon("selectedIcon.png"));
// 将复选框设置为禁用图标
checkBox.setDisabledIcon(new ImageIcon("disabledIcon.png"));
// 将复选框设置为禁用选定的图标
checkBox.setDisabledSelectedIcon(new ImageIcon("disabledSelectedIcon.png"));
// 按下复选框时设置复选框图标
checkBox.setPressedIcon(new ImageIcon("pressedIcon.png"));
// 鼠标悬停在复选框上方时设置图标
checkBox.setRolloverIcon(new ImageIcon("rolloverIcon.png"));
// 鼠标悬停在所选复选框上时设置图标
checkBox.setRolloverSelectedIcon(new ImageIcon("rolloverSelectedIcon.png"));
getContentPane().add(checkBox);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new JCheckBoxCustomIcon().setVisible(true);
}
});
}
}