java swing 复选JCheckBox组件美化
初始化:
勾选之后
源代码:
<span style="font-size:14px;">import java.io.File ;
import java.awt.event.WindowEvent ;
import java.awt.event.WindowListener ;
import java.awt.event.WindowAdapter ;
import java.awt.event.ItemEvent ;
import java.awt.Container ;
import java.awt.event.ItemListener ;
import java.awt.GridLayout ;
import javax.swing.JFrame ;
import javax.swing.JCheckBox ;
import javax.swing.JPanel ;
import javax.swing.ImageIcon ;
import javax.swing.BorderFactory ;
class MyItemListener implements ItemListener
{
private String right = "d:"+File.separator+"right.png" ;
private String wrong = "d:"+File.separator+"wrong.gif" ;
public void itemStateChanged(ItemEvent e)
{
JCheckBox jcb = (JCheckBox)e.getItem() ;
{
if(jcb.isSelected())
{
jcb.setIcon(new ImageIcon(right)) ;
}else jcb.setIcon(new ImageIcon(wrong)) ;
}
}
} ;
class MyCheckBox
{
private JFrame frame = new JFrame() ;
private String wrong = "d:"+File.separator+"wrong.gif" ;
private Container con = frame.getContentPane() ;
private JPanel pan = new JPanel() ;
JCheckBox jcb1 = new JCheckBox("学生",new ImageIcon(wrong)) ;
JCheckBox jcb2 = new JCheckBox("成年人",new ImageIcon(wrong)) ;
JCheckBox jcb3 = new JCheckBox("男孩",new ImageIcon(wrong)) ;
public MyCheckBox()
{
pan.setBorder(BorderFactory.createTitledBorder("选择人物属性")) ;
pan.setLayout(new GridLayout(1,3)) ;
pan.add(jcb1) ;
pan.add(jcb2) ;
pan.add(jcb3) ;
jcb1.addItemListener(new MyItemListener()) ;
jcb2.addItemListener(new MyItemListener()) ;
jcb3.addItemListener(new MyItemListener()) ;
con.add(pan) ;
this.frame.setSize(300,300) ;
this.frame.setVisible(true) ;
this.frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(1) ;
}
}) ;
}
} ;
class Tester
{
public static void main(String args[])
{
new MyCheckBox() ;
}
}
</span>

浙公网安备 33010602011771号