/**
*
*/
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`设置快捷键。 首先,我们需要了解快捷键的基本概念。快捷键通常由一个或多个按键组成,例如Ctrl+C用于复制,它们可以帮助用户快速执行特定操作而无需通过鼠标...
- 动作命令:`"disable"` — 这将在事件处理中使用。 2. **bc (Center Button):** - 设置文本:“默认按钮” - 设置图标:`centerButtonIcon` - 文本垂直位置:底部 (`AbstractButton.BOTTOM`) - 文本水平位置...
在Java中,可以使用`javax.swing.JButton`类来创建按钮对象。例如: ```java JButton button = new JButton("点击我"); ``` 这里的"点击我"是按钮上显示的文本。如果想要设置按钮的图标,可以使用`setIcon()`方法...
Java Swing JButton 按钮是 Java 中最常用的 GUI 组件之一,用于在用户界面中提供交互方式。JButton 按钮可以根据需要自定义外观和行为,下面将对 JButton 按钮的实现示例进行详细介绍。 一、JButton 按钮的构造...
为了实现这些效果,代码中使用了`paintComponent()`方法,这是`JComponent`类的一个关键方法,用于绘制组件的自定义图形。在`paintComponent()`中,作者使用了`Graphics2D`对象来绘制按钮的背景,包括颜色渐变、圆角...
JButton 美化,主要实现圆角矩形,根据鼠标动作变化,主要代码: Graphics2D g2d = (Graphics2D) g; g2d.setColor(Color.GREEN); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints....
java 中重写jbutton,改变按钮特点,写出自己想要的按钮
在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...
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...
在这个源码中,我们主要关注的是它如何使用Java编程语言,特别是JButton组件来实现游戏逻辑。JButton是Java Swing库中的一个关键组件,用于创建用户界面中的按钮,它可以响应用户的点击事件,执行相应的操作。 在...
使用 AbstractTableModel 构建Table 在表格中添加JButton按钮,之前在网上找了2天没有找到好用的程序,最终终于找到一个好用的例子。 不要使,我退你们分。。 sing the Swing JTable class can quickly become a ...
总之,“小玩JButton”可能是一篇关于如何通过多种方式个性化和优化Java Swing应用中`JButton`组件的教程,涵盖了图标、事件处理、视觉样式等多个方面,让开发者能够创建出更加吸引用户的界面。
在Java Swing库中,`JButton`是用于创建按钮组件的基本类。`JButton`具有默认的外观,包括边框,这通常是用户界面设计的一部分。然而,在某些情况下,我们可能希望自定义`JButton`的外观,比如去除边框,以达到特定...
Java 程序设计中,JButton 组件是 Swing 库中的一种基本组件,用于创建图形用户界面中的按钮。JButton 组件可以用来创建普通的按钮、带图片的按钮、带文字的按钮等多种样式的按钮。 JButton 的构造方法 JButton ...
在JButton中,下划线可以用来表示快捷键。例如,如果你想要创建一个带有快捷键的按钮,你可以通过设置按钮的mnemonic属性来实现。Mnemonic是一个字符,当该字符在按钮的文字中被下划线标记时,用户可以通过按下Alt键...
提供的压缩包文件列表中,"ZButton.jar"可能是一个包含这个定制JButton类的Java应用程序或库,可以直接运行或导入到其他项目中使用。"autorun.bat"可能是一个批处理文件,用于自动运行ZButton.jar,方便用户快速测试...