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的简单学习的更多相关文章

  1. JAVA学习Swing章节流布局管理器简单学习

    package com.swing; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton ...

  2. Java Swing实战(四)按钮组件JButton及其事件监听

    接下来为面板添加保存按钮,并为按钮绑定事件监听. /** * @author: lishuai * @date: 2018/11/26 13:51 */ public class WeimingSyn ...

  3. JAVA学习Swing章节标签JLabel中图标的使用

    package com.swing; import java.awt.Color; import java.awt.Component; import java.awt.Container; impo ...

  4. JAVA学习Swing章节JPanel和JScrollPane面板的简单学习

    package com.swing; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton ...

  5. JAVA学习中Swing部分JDialog对话框窗体的简单学习

    package com.swing; import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent ...

  6. Java——不弹起的按钮组件:JToggleButton

    import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JToggleButton; //========= ...

  7. Flutter学习笔记(11)--文本组件、图标及按钮组件

    如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 文本组件 文本组件(text)负责显示文本和定义显示样式,下表为text常见属性 Text组件属性及描述 属性名 类型 默认 ...

  8. 【Flutter学习】基本组件之基本按钮组件

    一,概述 由于Flutter是跨平台的,所以有适用于Android和iOS的两种风格的组件.一套是Google极力推崇的Material,一套是iOS的Cupertino风格的组件.无论哪种风格,都是 ...

  9. 实验十四 第九组 张燕~杨蓉庆~杨玲 Swing图形界面组件

    实验十四  Swing图形界面组件 8-11-29 理论知识 Swing和MVC设计模式 (1)设计模式(Design pattern)是设计者一种流行的 思考设计问题的方法,是一套被反复使用,多数人 ...

随机推荐

  1. git 一般的使用操作

    1.先在github上建立自己的repository,取名为yourRepo 2.创建本地库 ssh -T git@github.com # 在初始化版本库之前,先要确认认证的公钥是否正确 git i ...

  2. static关键字用法

    java中static关键字可用于修饰: 1.属性:表示该属性变量在类被加载时即被创建并初始化,类加载过程只进行一次,因此静态变量也只被创建一次 2.方法:静态方法为类的公有方法,可直接用‘类名.方法 ...

  3. js之正则1

      在看jquery的源码时,看到对$对象的init入口对参数解析时,正则的迷惑. 疑惑点:z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/ a = ...

  4. zabbix使用sendEmail发送邮件报警

    sendEmail是一个轻量级,命令行的SMTP邮件客户端.如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php.bashperl和web站 ...

  5. iOS 1 到 iOS 10 ,我都快老了

    iOS 1:iPhone诞生 虽然很难想像,但初代iPhone在问世时在功能方面其实远远落后于那时的竞争对手,比如Windows Mobile.Palm OS.塞班.甚至是黑莓.它不支持3G.多任务. ...

  6. 状态机学习(三)解析JSON

    来自 从零开始的 JSON 库教程 从零开始教授如何写一个符合标准的 C 语言 JSON 库 作者 Milo Yip https://zhuanlan.zhihu.com/json-tutorial ...

  7. Asp.Net 基础理论

    WebForm是微软开发的一款产品,它将用户的请求和响应都封装为控件.让开发者认为自己是在操作一个windows界面.极大地提高了开发效率. 在学习WebForm时,其知识量比WinForm要多,在实 ...

  8. shell语法快速入门(1)

    #得到绝对路径 DIR=$(cd `dirname $0`;pwd) $DIR/file.txt #去掉#注释 egrep -v "(#|^$)" /etc/zabbix/zabb ...

  9. JavaScript-setTimeout

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. 基于注解的DWR使用

    dwr3.0支持使用注解,如果不喜欢配置dwr.xml文件,注解是个不错的方法,简单快捷. 步骤如下: 1.配置web.xml文件,需要在DwrServlet里加classes初始化参数: <i ...