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)是设计者一种流行的 思考设计问题的方法,是一套被反复使用,多数人 ...
随机推荐
- centos 下添加epel源
来源于http://www.centoscn.com/CentOS/config/2014/0920/3793.html,收录备用 0.安装yum优先级插件 yum install yum-prior ...
- 前端开发必备! 20 个强大的 Sublime Text 插件
http://www.oschina.net/translate/20-powerful-sublimetext-plugins http://www.w3cplus.com/tools/emmet- ...
- python profile
一.profile,cProfile 1. python -m cProfile myprogram.py python -m profile myprog.py2. 使用import profile ...
- TableView刷新指定的cell 或section
//一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:]; [tableview reloadSections:ind ...
- [MOSEK] Mosek求解中遇到的奇葩内存问题
在使用mosek优化库的时候,使用http://docs.mosek.com/7.0/capi/MSK_getxx_.html的 MSKrescodee MSK_getxx ( MSKtask_t t ...
- 程序员遇到Bug时的25个反应
开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...
- Odoo10尝鲜: 退货
Odoo sale / purchase 在 v9 改进之后, 开立发票的入口 不再像之前的版本,有多个来源,例如 订单 交货单 记工单 分析分录 现在只有一个入口,只需要在 订单上开票,这样 ...
- mybatis 控制台打印sql
开发时调试使用 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBe ...
- CityEngine中动态水的实现
地址:http://pan.baidu.com/share/link?shareid=3871210059&uk=3492170216 密码:am5b 在今年Esri全球用户大会和Esri中国 ...
- jsp_设置文件编码
jsp有两种方法可以设置文件编码: (1)<%@page language="java" contentType="text/html;charset=utf-8& ...