普通按钮(JButton
)
- 代码部分
package top.linksinke.test;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
/**
* JButton 按钮的使用<br/>
* create by LINKSINKE on 2020/2/28
*/
public class JButtonTest extends JFrame {
public JButtonTest() {
this.setBounds(20, 20, 600, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container ctainer = this.getContentPane();
ctainer.setLayout(new GridLayout(2, 4, 8, 20));
JButton jbtn[] = new JButton[8];
for (int i = 0; i < jbtn.length; i++) {
jbtn[i] = new JButton();
ctainer.add(jbtn[i]);
}
jbtn[0].setText("禁用中...");
jbtn[0].setEnabled(false);// 为禁用状态
jbtn[1].setText("绿色背景");
jbtn[1].setBackground(Color.GREEN); // 绿色背景色
jbtn[2].setText("带边框");
// 边框线宽度为10,颜色为黄颜色
jbtn[2].setBorder(BorderFactory.createLineBorder(Color.YELLOW, 10));
jbtn[3].setText("无边框");
jbtn[3].setBorderPainted(false); // 没有边框
jbtn[4].setText("有图片");
jbtn[4].setIcon(new ImageIcon("src/btn.png")); // 设置图片
jbtn[4].setToolTipText("乎,有个提示哎");// 放到图片上才有提示文字
/**
* 弹窗
*/
jbtn[5].setText("选择内容");
jbtn[5].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int content = JOptionPane.showConfirmDialog(JButtonTest.this, "猜猜看,有什么惊喜呢???");
if (content > 0) {
JOptionPane.showMessageDialog(JButtonTest.this, "请重新选择是");
} else {
JOptionPane.showMessageDialog(JButtonTest.this, "中奖了,恭喜你");
}
}
});
jbtn[6].setText("好好学习,天天向上");
// 设置字体
jbtn[6].setFont(new Font("仿宋", Font.BOLD, 10));
// 设置窗口为显示状态
this.setVisible(true);
}
public static void main(String args[]) {
JFrame jframe = new JButtonTest();
}
}
- 代码效果图
单选按钮(JRadioButton
)
- 代码部分
package top.linksinke.test;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
/**
* JRadioButton 单选按钮的使用<br/>
* create by LINKSINKE on 2020/2/29
*/
public class JRadioButtonTest extends JFrame {
public JRadioButtonTest() {
// 设置close按钮的操作(退出窗口并停止程序运行)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口默认打开的位置和大小
this.setBounds(30, 30, 300, 300);
// 获取容器对象
Container ctainer = this.getContentPane();
// 设置布局方式为网格布局,2行1列,横向间距10,纵向间距10
ctainer.setLayout(new GridLayout(2, 1, 10, 10));
// 设置默认按钮0是勾选中的
/**
* 通过setSelected(boolean 值,可选true|false)方法来设置默认值
*/
JPanel p1 = new JPanel();
p1.setLayout(new FlowLayout());
p1.setBorder(BorderFactory.createTitledBorder("默认勾选旋钮0效果"));
JRadioButton rdoOne[] = new JRadioButton[8];
for (int i = 0; i < rdoOne.length; i++) {
rdoOne[i] = new JRadioButton("旋钮" + i);
p1.add(rdoOne[i]);
}
rdoOne[0].setSelected(true); // 设置默认选择旋钮0
// 设置按钮存在排斥效果,即不能同时选中,只能够选中一个
/**
* 通过ButtonGroup来实现只能够选中一个
*/
JPanel p2 = new JPanel();
p2.setBorder(BorderFactory.createTitledBorder("排斥效果"));
final JRadioButton rdoTwo[] = new JRadioButton[8];
final ButtonGroup group = new ButtonGroup();
for (int i = 0; i < rdoTwo.length; i++) {
rdoTwo[i] = new JRadioButton("旋钮" + i);
group.add(rdoTwo[i]);
p2.add(rdoTwo[i]);
}
/**
* 将面板名称为“排斥效果”的按钮状态以弹窗的形式告知
*/
JButton btn = new JButton("输出");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(JRadioButtonTest.this,
"按钮0状态==" + rdoTwo[0].isSelected() + "按钮1状态=" + rdoTwo[1].isSelected() + "\n按钮2状态="
+ rdoTwo[2].isSelected() + "按钮3状态=" + rdoTwo[3].isSelected() + "\n按钮4状态="
+ rdoTwo[4].isSelected() + "按钮5状态=" + rdoTwo[5].isSelected() + "\n按钮6状态="
+ rdoTwo[6].isSelected() + "按钮7状态=" + rdoTwo[7].isSelected());
group.clearSelection();
JOptionPane.showMessageDialog(JRadioButtonTest.this,
"按钮0状态==" + rdoTwo[0].isSelected() + "按钮1状态=" + rdoTwo[1].isSelected() + "\n按钮2状态="
+ rdoTwo[2].isSelected() + "按钮3状态=" + rdoTwo[3].isSelected() + "\n按钮4状态="
+ rdoTwo[4].isSelected() + "按钮5状态=" + rdoTwo[5].isSelected() + "\n按钮6状态="
+ rdoTwo[6].isSelected() + "按钮7状态=" + rdoTwo[7].isSelected());
}
});
p2.add(btn);
// 向容器中添加面板对象p1,p2
ctainer.add(p1);
ctainer.add(p2);
// 设置窗口为显示状态
this.setVisible(true);
}
public static void main(String args[]) {
JFrame jframe = new JRadioButtonTest();
}
}
- 代码效果图
复选框按钮(JCheckBox
)
- 代码部分
package top.linksinke.test;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
* JCheckBox 复选框练习<br/>
* create by LINKSINKE on 2020/2/29
*/
public class JCheckBoxTest extends JFrame {
public JCheckBoxTest() {
// 设置close按钮的操作(关闭窗口并停止程序)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口默认打开的位置和大小
this.setBounds(20, 20, 300, 200);
// 获取容器对象
Container ctainer = this.getContentPane();
// 设置布局方式为流式布局
ctainer.setLayout(new FlowLayout());
// 创建c1对象
final JCheckBox c1 = new JCheckBox("乒乓球");
c1.setSelected(true);// 设置乒乓球为默认选中
ctainer.add(c1);
// 添加匿名对象到容器中
ctainer.add(new JCheckBox("足球"));
ctainer.add(new JCheckBox("篮球"));
ctainer.add(new JCheckBox("排球"));
ctainer.add(new JCheckBox("高尔夫球"));
ctainer.add(new JCheckBox("冰球"));
ctainer.add(new JCheckBox("网球"));
ctainer.add(new JCheckBox("橄榄球"));
ctainer.add(new JCheckBox("羽毛球"));
ctainer.add(new JCheckBox("保龄球"));
/**
* 获取c1的选中状态<br/>
* true:选中状态,false:未选中状态
*/
JButton btn = new JButton("获取c1状态");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(JCheckBoxTest.this, "c1的状态为:" + c1.isSelected());
}
});
// 添加btn到容器中
ctainer.add(btn);
// 设置窗口为显示状态
this.setVisible(true);
}
public static void main(String args[]) {
JFrame jframe = new JCheckBoxTest();
}
}
- 代码效果图
切换按钮(JToggleButton
)
- 代码部分
package top.linksinke.test;
import java.awt.Container;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToggleButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/**
* JToggleButton 切换按钮的使用<br/>
* create by LINKSINKE on 2020/3/2
*/
public class JToggleButtonTest extends JFrame {
public JToggleButtonTest() {
// 设置close按钮的操作(关闭窗口并停止程序的运行)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口默认打开的位置和大小
this.setBounds(20, 20, 200, 200);
// 获取容器对象
Container ctainer = this.getContentPane();
ctainer.setLayout(null);// 设置布局方式为绝对布局
// 带图片的标签
final JLabel lb = new JLabel(new ImageIcon("src/java.jpg"));
lb.setBounds(40, 10, 100, 100);// 设置位置和大小
lb.setVisible(false);// 默认为不显示该标签
// 切换按钮
final JToggleButton tgbtn = new JToggleButton("查看图片");
tgbtn.setBounds(40, 120, 90, 20);// 设置位置和大小
/**
* 添加按钮状态改变的监听事件
*/
tgbtn.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
JToggleButton j = (JToggleButton) e.getSource();
if (j.isSelected()) {
tgbtn.setText("隐藏图片");
lb.setVisible(true);
} else {
tgbtn.setText("查看图片");
lb.setVisible(false);
}
}
});
// 往容器里放入切换按钮、带图片的标签
ctainer.add(tgbtn);
ctainer.add(lb);
// 设置窗口为显示状态(true为显示,false为不显示)
this.setVisible(true);
}
public static void main(String args[]) {
JFrame jframe = new JToggleButtonTest();
}
}
- 代码效果图