/**
*
*/
package com.duoguo.button;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
/**
* @author shyboy(chao.shen@duoguo.cn)
*
*/
@SuppressWarnings("serial")
public class CheckBoxDemo extends JPanel implements ItemListener {
private JCheckBox chinCheckBox;// 下巴复选框
private JCheckBox glassesCheckBox;// 眼睛复选框
private JCheckBox hairCheckBox;// 头发复选框
private JCheckBox toothCheckBox;// 牙齿复选框
private JPanel topPanel;
private JPanel bottomPanel;
private StringBuilder choices;
private JLabel pictureLabel;
/**
* 构造方法
*/
public CheckBoxDemo() {
chinCheckBox = new JCheckBox("下巴");
chinCheckBox.setMnemonic(KeyEvent.VK_1);// 快捷键ALT+1
chinCheckBox.setSelected(true);
glassesCheckBox = new JCheckBox("眼睛");
glassesCheckBox.setMnemonic(KeyEvent.VK_2);// 快捷键ALT+2
glassesCheckBox.setSelected(true);
hairCheckBox = new JCheckBox("头发");
hairCheckBox.setMnemonic(KeyEvent.VK_3);
hairCheckBox.setSelected(true);
toothCheckBox = new JCheckBox("牙齿");
toothCheckBox.setMnemonic(KeyEvent.VK_4);
toothCheckBox.setSelected(true);
chinCheckBox.addItemListener(this);
glassesCheckBox.addItemListener(this);
hairCheckBox.addItemListener(this);
toothCheckBox.addItemListener(this);
topPanel = new JPanel(new GridLayout(1, 4));
topPanel.add(chinCheckBox);
topPanel.add(glassesCheckBox);
topPanel.add(hairCheckBox);
topPanel.add(toothCheckBox);
choices = new StringBuilder("cght");
pictureLabel = new JLabel();
updatePicture();
bottomPanel = new JPanel(new FlowLayout());
bottomPanel.add(pictureLabel);
setLayout(new BorderLayout());
this.add(topPanel, BorderLayout.NORTH);
this.add(bottomPanel, BorderLayout.CENTER);
}
/**
* 更新图片
*/
public void updatePicture() {
ImageIcon imageIcon = createImageIcon("images/geek-"
+ choices.toString() + ".gif");
pictureLabel.setIcon(imageIcon);
pictureLabel.setToolTipText(choices.toString());
if (null == imageIcon) {
pictureLabel.setText("无图片");
} else {
pictureLabel.setText(null);
}
}
/**
* 设置复选框对应的相应图标
*
* @param path
* :图片路径
* @return ImageIcon
*/
public static ImageIcon createImageIcon(String path) {
if (null != path && !"".equals(path)) {
URL url = CheckBoxDemo.class.getResource(path);
if (null != url) {
return new ImageIcon(url);
} else {
System.err.println("找不到图片的……");
return null;
}
}
return null;
}
/**
* 创建并显示相应的界面
*/
public static void createAndShowGUI() {
JFrame jFrame = new JFrame("Swing中的JCheckBox");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 当窗口被关闭时应用程序退出
CheckBoxDemo checkBoxDemo = new CheckBoxDemo();
checkBoxDemo.setOpaque(true);
jFrame.setContentPane(checkBoxDemo);
jFrame.pack();
jFrame.setVisible(true);
jFrame.setSize(500, 300);
jFrame.setLocation(300, 200);
}
/*
* (non-Javadoc)
*
* @see
* java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
*/
@Override
public void itemStateChanged(ItemEvent e) {
int index = 0;
char c = '-';
Object source = e.getItemSelectable();
if (source == chinCheckBox) {
index = 0;
c = 'c';
} else if (source == glassesCheckBox) {
index = 1;
c = 'g';
} else if (source == hairCheckBox) {
index = 2;
c = 'h';
} else if (source == toothCheckBox) {
index = 3;
c = 't';
}
if (e.getStateChange() == ItemEvent.DESELECTED) {
c = '-';
}
choices.setCharAt(index, c);
updatePicture();
}
/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
}
希望对你有所帮助,如有不清楚的地方,可联系chao.shen@duoguo.cn
- 描述: 运行结果的显示图
- 大小: 22 KB
分享到:
相关推荐
java 在JButton上设置快捷键 java 在JButton上设置快捷键 java 在JButton上设置快捷键
Java swing 中JButton的使用 Java swing 中JButton的使用
java JButton的使用 java JButton的使用 java JButton的使用
JButton 美化,主要实现圆角矩形,根据鼠标动作变化,主要代码: Graphics2D g2d = (Graphics2D) g; g2d.setColor(Color.GREEN); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints....
java 中重写jbutton,改变按钮特点,写出自己想要的按钮
Java界面中的按钮,用于进行一些提交或者确定之类的命令的执行项,与Java的事件结合在一起,很是好用,在一些带界面的小项目中经常使用
主要介绍了Java Swing JButton按钮的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
java swing JButton 圆角按钮 带变色(有注释,简单易懂适用于初学者 程序可直接运行)
JButton是Swing库中的一个组件,用于创建可点击的按钮。你可以使用JButton来触发操作或执行特定任务。
主要代码: @Override public void paintIcon(Component cmp, Graphics g, int x, int y) { Color lowerColor = new Color(235,255,235); ... Color highColor = new Color(81,184,77);... g2d.setRenderingHint...
swing 中JTABLE中添加控件的例子 可以引申出添加很多控件
使用 AbstractTableModel 构建Table 在表格中添加JButton按钮,之前在网上找了2天没有找到好用的程序,最终终于找到一个好用的例子。 不要使,我退你们分。。 sing the Swing JTable class can quickly become a ...
一个小游戏,可直接运行,更多的是jbutton的灵活使用,谢谢大家支持。
java按钮jbutton透明设置 不要用 setOpaque(false)的方法
jni02demo
基于basicUI的JButton重写,下载后直接使用,直接new就可以了…………………………………………………………………………
Java程序设计:031804_按钮组件:JButton.ppt