JAVA学习Swing章节按钮组件JButton的简单学习
package com.swing; import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL; import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants; /**
* 1:按钮在Swing中是较为常见的组件,用于触发特定动作
* Swing中提供了多种按钮,包括提交按钮,复选框,单选按钮等
* 这些按钮都是从AbstractButton类中继承而来的
*
* 2:Swing中的提交按钮组件(JButton)由JButton对象表示
* JButton含有4种主要的构造方法
* 参数text,icon分别代表显示文字标签和图标
*
* 3:本实例使用了两种方式创建按钮,第一种是在初始化按钮时赋予按钮图标与文字
* 这种初始化必须先获得图片路径,然后将路径实例化到Icon,然后在Button中加载出来
* 第二种方式是首先创建一个没有定义图标和文字的按钮对象,然后使用
* setIcon()方法为这个按钮定制一个图标。
* setToolTipText()方法是为按钮设置提示文字,鼠标停留在按钮上面即可
* setBorderPainted()方法设置边界是否显示
* setMaximumSize()方法设置按钮的大小与图标的大小一致,该类方法需要的参数类型是
* Dimension类对象,这样看上去此图片就如同按钮一样摆放在窗体中,
* 同时也可以使用setEnabled()方法设置按钮是否可用
*
* @author biexiansheng
*
*/
public class JButtonTest extends JFrame{ public JButtonTest(){//定义一个构造方法
//获取图片所在的URL 以下2行代码需要额外注意
URL url=JButtonTest.class.getResource("imageButtoo.jpg");
Icon icon=new ImageIcon(url);//实例化Icon对象 //设置网格布局管理器 3行2列 水平5垂直5
setLayout(new GridLayout(3,2,5,5)); //创建容器
Container container=getContentPane();
for(int i=0;i<5;i++){//创建按钮,同时设置按钮文字和图标
JButton jb=new JButton("button"+i,icon);
container.add(jb);//将按钮添加到容器中
if(i%2==0){
jb.setEnabled(false);//设置其中一些按钮不可用
}
}//上下位两种按钮的实例化 JButton jb2=new JButton();//实例化一个没有文字与图片的按钮
jb2.setMaximumSize(new Dimension(90,30));//设置按钮和图片的大小相同
jb2.setIcon(icon);//为按钮设置图标
jb2.setHideActionText(true);
jb2.setToolTipText("图片按钮");//设置按钮提示为文字
jb2.setBorderPainted(false);//设置按钮边界不显示
jb2.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//弹出对话框
JOptionPane.showMessageDialog(null, "弹出对话框");
}
});
container.add(jb2);//将按钮添加到容器中 setTitle("提交按钮组件按钮小试牛刀");//设置窗口标题
setVisible(true);//设置窗口可视化
setSize(500,550);//设置窗口的大小
//设置窗口的关闭方式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
} public static void main(String[] args) {
// TODO Auto-generated method stub
JButtonTest jb=new JButtonTest();
} }
案例运行结果如下

package com.swing; import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants; /**
* 1:复选框组件JCheckBox
* 其在Swing组件中的使用也非常广泛,它具有一个方性图标,外加一段描述性文字
* 复选框区别于单选按钮就是每一个复选框都提供了选中和不选中两种状态
*
* @author biexiansheng
*
*/
public class CheckBoxTest extends JFrame{ private JPanel jp1=new JPanel();//初始化面板对象
private JPanel jp2=new JPanel();//
//如果加入滚动面板必须先加入JTextArea并且一定要指定编译器的大小
private JTextArea jt=new JTextArea(20,50);//创建文本域组件
private JCheckBox jc1=new JCheckBox();//实例化复选按钮
private JCheckBox jc2=new JCheckBox();//
private JCheckBox jc3=new JCheckBox();// public CheckBoxTest(){//定于一个构造方法
Container container=getContentPane();//创建一个容器 //设置布局管理器
container.setLayout(new BorderLayout());//初始化边界布局管理器 container.add(jp1,BorderLayout.NORTH);//添加到容器中
final JScrollPane js=new JScrollPane(jt);//创建JScrollPane面板对象
/*如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上
* 然后将JPanel面板作为一个整体组件添加在JScrollPane组件上 * */
jp1.add(js); container.add(jp2, BorderLayout.SOUTH);
jp2.add(jc1);
jc1.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jt.append("复选框1被选中\n");
}
}); jp2.add(jc2);
jc2.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jt.append("复选框2被选中\n");
}
}); jp2.add(jc3);
jc3.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jt.append("复选框3被选中\n");
}
}); setTitle("复选框的使用");
setSize(600,650);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CheckBoxTest cb=new CheckBoxTest();
//实例化时调用构造方法
} }
实例运行结果如下
为了区别运行想过,特别添加了颜色运行效果清晰区别
也熟悉一下各个面板颜色的控制


package com.swing; import java.awt.Container; import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.WindowConstants; /**
* 1:在默认情况下,单选按钮JRadioButton显示一个圆形图标,并且通常在该图标旁放置
* 一些说明性文字,而在应用程序中,一般将多个单选按钮放置在按钮组中,使这些单选按钮
* 表现出某种功能,当用户选中某个单选按钮后,按钮组中其他按钮将被自动取消。
*
* 2:单选按钮是Swing组件中JRadioButton类的对象,该类是JToggleButton的子类
* 而JToggleButton类又是AbstractButton类的子类,所以控制单选按钮的诸多方法都是
* AbstractButton类中的方法。
*
* 3:在Swing中存在一个ButtonGroup类,用于产生按钮组。
* 如果希望将所有的单选按钮放置在按钮组中,需要实例化一个JRadioButton对象
* 并且用该对象调用add()方法添加单选按钮
* @author biexiansheng
*
*/
public class JRadioButtonTest extends JFrame{ private JRadioButton jr1=new JRadioButton();
private JRadioButton jr2=new JRadioButton();
private JRadioButton jr3=new JRadioButton();//初始化单选按钮
//实例化单选按钮组
private ButtonGroup group=new ButtonGroup();
private JPanel jp=new JPanel();//初始化面板 public JRadioButtonTest(){
Container container=getContentPane();//创建一个容器 group.add(jr1);
group.add(jr2);
group.add(jr3); jp.add(jr1);
jp.add(jr2);
jp.add(jr3);//将单选按钮添加到面板中 container.add(jp);//将面板添加到容器中
//设置容器的特性
setTitle("单选按钮的简单练习");//容器的标题
setVisible(true);//可视化
setSize(200,150);//容器的大小
//设置容器的关闭方式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JRadioButtonTest jb=new JRadioButtonTest();
} }
简单实例运行结果如下

此简例只是简单的描写了如何实现单选按钮,并没有产生反应,仅是案例演示
package com.swing; import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout; import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.WindowConstants; public class Test extends JFrame{ private JRadioButton jr1;
private JRadioButton jr2;
private ButtonGroup bg1; private JCheckBox cb1;
private JCheckBox cb2;
private JCheckBox cb3; private JLabel jl1;
private JLabel jl2; private JPanel jp1;
private JPanel jp2;
private JPanel jp3; private JButton jb1;
private JButton jb2;
public Test(){
Container container=getContentPane();//创建一个容器
cb1=new JCheckBox("篮球");
cb2=new JCheckBox("足球");
cb3=new JCheckBox("排球"); jl1=new JLabel("你喜欢的运动");
jl2=new JLabel("你的性别"); jb1=new JButton("提交");
jb2=new JButton("重置"); jr1=new JRadioButton("男");
jr2=new JRadioButton("女");
bg1=new ButtonGroup(); setLayout(new GridLayout(3, 1));//设置网格布局管理器3行1列
jp1=new JPanel();
jp1.add(jl1);
jp1.add(cb1);//将单选按钮添加到面板上面
jp1.add(cb2);
jp1.add(cb3);
container.add(jp1); jp2=new JPanel();
jp2.add(jl2);
bg1.add(jr1);//将单选按钮添加到ButtonGroup中
bg1.add(jr2);
jp2.add(jr1);
jp2.add(jr2);
container.add(jp2); jp3=new JPanel();
jp3.add(jb1);
jp3.add(jb2);
container.add(jp3);
setTitle("按钮的运用");
setSize(400,300);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Test();
} }
案例运行结果如下

JAVA学习Swing章节按钮组件JButton的简单学习的更多相关文章
- JAVA学习Swing章节流布局管理器简单学习
package com.swing; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton ...
- Java Swing实战(四)按钮组件JButton及其事件监听
接下来为面板添加保存按钮,并为按钮绑定事件监听. /** * @author: lishuai * @date: 2018/11/26 13:51 */ public class WeimingSyn ...
- JAVA学习Swing章节标签JLabel中图标的使用
package com.swing; import java.awt.Color; import java.awt.Component; import java.awt.Container; impo ...
- JAVA学习Swing章节JPanel和JScrollPane面板的简单学习
package com.swing; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton ...
- JAVA学习中Swing部分JDialog对话框窗体的简单学习
package com.swing; import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent ...
- Java——不弹起的按钮组件:JToggleButton
import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JToggleButton; //========= ...
- Flutter学习笔记(11)--文本组件、图标及按钮组件
如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 文本组件 文本组件(text)负责显示文本和定义显示样式,下表为text常见属性 Text组件属性及描述 属性名 类型 默认 ...
- 【Flutter学习】基本组件之基本按钮组件
一,概述 由于Flutter是跨平台的,所以有适用于Android和iOS的两种风格的组件.一套是Google极力推崇的Material,一套是iOS的Cupertino风格的组件.无论哪种风格,都是 ...
- 实验十四 第九组 张燕~杨蓉庆~杨玲 Swing图形界面组件
实验十四 Swing图形界面组件 8-11-29 理论知识 Swing和MVC设计模式 (1)设计模式(Design pattern)是设计者一种流行的 思考设计问题的方法,是一套被反复使用,多数人 ...
随机推荐
- 使用引脚模拟PWM波控制引脚
/********************************* 代码功能:输出PWM波控制引脚 使用函数: 创作时间:2016*10*07 作者邮箱:jikexianfeng@outlook.c ...
- iOS中UITableView数据源刷新了,但tableview当中的cell没有刷新
你会不会遇到通过断点查看数据源模型的确刷新了,但是tableview没有刷新的情况,我遇到了,并通过下面的方法解决了,供大家参考! 在tableview中的数据源代理方法 p.p1 { margin: ...
- Quartus中添加时序约束
1.sdc文件也是要添加到Quartus 软件中,这样在执行Read SDC File命令时才能读到相应的文件. 2.在TimeQuest打开的条件下,重新编译工程之后要Update Timing N ...
- 持续获取可访问谷歌的hosts(已证实可用)
@echo off REM 欢迎圈我,在顶栏的"查找人员"处输入Felix Hsu即可 REM Patched by logicmd REM 准备工作,先清一下DNS缓存,再备份h ...
- Linux内核同步机制--转发自蜗窝科技
Linux内核同步机制之(一):原子操作 http://www.wowotech.net/linux_kenrel/atomic.html 一.源由 我们的程序逻辑经常遇到这样的操作序列: 1.读一个 ...
- [转载] 散列表(Hash Table)从理论到实用(上)
转载自:白话算法(6) 散列表(Hash Table)从理论到实用(上) 处理实际问题的一般数学方法是,首先提炼出问题的本质元素,然后把它看作一个比现实无限宽广的可能性系统,这个系统中的实质关系可以通 ...
- IOS单例模式要做到3点
1,永远只分配一块内存来创建对象. +(instanst) static id instace = nil; static dispatch_once_t onceToken; dispatch_on ...
- Spring 4 官方文档学习(十一)Web MVC 框架之HTTP caching support
一个良好的HTTP缓存策略可以显著地增进web应用的性能和其客户端的体验.主要使用"Cache-Control" HTTP response header来完成,配合conditi ...
- Odoo10尝鲜:出勤登记
非常的cool,使用一个 联网的PAD 就能使用超级潮的 出勤登记功能 扫描 工牌条码,或者 从员工目录选择 员工, 例如 输入 PIN 密码, 防止"代打卡" ...
- sql常用语法
--在表中添加字段if col_length('JX_DomesticStudy','XL') is null begin alter table JX_DomesticStudy add PXlev ...