按钮跟我学Java Swing GUI组件技术及应用实例——JToolBar工具条的编程应用示例

java编程工具  时间:2021-02-26  阅读:()

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

1. 1 跟我学Java Swing GUI组件技术及应用实例——JToolBar工具条的编程应用示例

1. 1. 1 Java Swing中的工具条JToolBar的编程应用

1、 JToolBar类

JToo lBar是一种存放组件一般为按钮或者下拉列表框的特殊S wing容器。这个容器可以在J ava程序中用作工具栏——工具栏是现代用户界面中主程序窗口的主要部分工具栏向用户提供了对于常用命令的简单访问

JToo lBar可以在程序的主窗口之外浮动或是被托拽而通过setF lo atab le(fa lse)方法可以禁止鼠标拖动功能 它也是一种容器并按照行或列对组件它们一般为按钮进行分组如下为JDK系统帮助文档中对JTo o lB ar类的说明信息。

2、工具条的方向

在默认情况下工具栏是以水平方向进行创建的。 当然也可以通过JToolBar的常量HO RI ZONTAL与VERTICAL显示指定方向——可以使用S wingC o nstants.HO RI ZONTAL或者SwingC o nstants.VERTICAL来设置其方向。

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

处于正常的水平方向被托拽出

处于竖直状态在左边

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

处于竖直状态在右边如果使用水平方向创建一个工具栏用户可以在窗口周围拖动工具栏来改变工具栏的方向。

3、 JToolB ar类的构造函数

1 JToo lBar()创建出水平方向的工具条缺省为HO RIZON TAL 。

2 JToo lBar(int orientation)创建出指定方向的工具条。

3 JToo lBar(String name)创建出指定名称的工具条。

4 JToo lBar(String name, int orientation)创建出指定方向和名称的工具条。

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

4、工具条上的工具按钮的事件编程

由于并没有特定于JTo o lB ar的事件 因此需要将事件监听器关联到需要响应用户交互的JToo lBar上的每一个按钮组件上。因此对于J Too lBar的事件编程类似于一般的按钮事件编程可以分别为各个不同的按钮单独进行事件编程。

5、编程方法

1创建出JTo o lB a r对象

JToo lBar too lBar=new JToo lBar(); //创建出水平方向的工具条

2然后采用add(Object)方法将组件可以为按钮或其它组件加入到工具条中。too lBar.add(newB utto n);

当处理水平工具栏时 由于美观的原因如果工具栏的组件是大致相同的高度时是最杨教授工作室版权所有4 盗版必究 4/10页

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

好的而对于垂直工具栏如果工具栏组件具有大致相同的宽度则是最好的。

3 向工具栏添加分隔符

JTo o lBa r维护其自己的分隔符这个分隔符是调用J To o lBa r的addS ep ara tor()方法时自动创建的。to o lB ar.add S ep a rator();

4最后再将工具条加入到内容面板中pane.add("North",too lBar);

6、在应用程序窗口内编程应用工具条的应用示例

1程序示例代码package com.bluedream.swing;import javax.swing.*;importjava.awt.*;import java.awt.event.Actio nListener;import java.awt.event.ActionEvent;pub lic class JToolBarTest extends JFrame imp lements ActionListener{

JButto n newButto n,openButto n,save Butto n;

JTe xtArea te xtBo x;pub lic JToo lBarTe st() {sup e r("窗口的标题条文字");

/**

*以下分别创建出工具条的各个按钮

*/

ImageIcon newImage=ne w ImageIcon(this.getClass().getResource(".\\images\\AppFiles.gif"));ne wButto n=ne w JButto n(ne wIma ge);ne wB utto n.s et To o lT ip Te xt("新建");ne wButto n.addActio nLis te ner(this);

杨教授工作室版权所有5 盗版必究 5/10页

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

ne w ImageIcon(this.getClass().getResource(".\\images\\open.gif"));op enB utto n=new JB utto n(op e nI ma ge);openB utto n.setToo lTip Te xt("打开");openButto n.addAc tio nListener(this);

ImageIcon saveImage=ne w ImageIcon(this.getClass().getResource(".\\images\\save.gif"));saveButton=new JButton(saveImage);save B utto n.s e t To o lT ip Te xt("保存");save Butto n.addActio nListener(this);

/**

*创建出水平方向的工具条

*/

JToo lBar too lBar=new JToo lBar();

/**

*将各个工具按钮加入JTo o lB a r中

*/too lBar.add(newButto n);to o lBar.add(op e nB utto n);to o lBar.add(sa ve B utto n);textBox=new JTextArea();

JScrollPane scro llPane=new JScro llPane(textBox,

JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,

JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);/**

*创建出内容面板

*/

JPanel contentPane=new JPanel();

杨教授工作室版权所有6 盗版必究 6/10页

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

conte ntPane.s etBorder(Bo rderFac tory.c reate TitledBo rder("title"));conte ntP ane.add("N orth",too lBar);conte ntP ane.add("C e nter",scro llP ane);setC onte ntPane(co nte ntPane);setS ize(400,400);setVisible(true);setDe faultC loseOperatio n(JFrame.EXI T_ON_CLO SE);

}public void actionPerformed(ActionEvent parm1){if(parm1.ge tS ource()==newButto n){textBox.append("您点击了新建按钮");

}e lse if(parm1.getSource()==openButto n){textBox.append("您点击了打开按钮");

}else if(parm1.getSource()==saveButton){textBox.append("您点击了保存按钮");

}

}public static void main(String[]args){

JToo lBarTe st frame=new J Too lBarTest();

}

}

2示例程序的执行结果

杨教授工作室版权所有7 盗版必究 7/10页

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

3按钮中图片的目录路径定位

应该要应用getResource方法获得当前程序类所在的目录路径否则将无法正确地定位按钮图片的目录路径。

ImageIcon newImage=new ImageIcon(this.getC lass().getResourc e(".\\image s\\AppF iles.gif"));getResource方法的功能说明

项目中的各个按钮的图片文件的存放目录

杨教授工作室精心创作的优秀程序员职业提升必读系列资料

4按钮的事件响应public void actionPerformed(ActionEvent p arm1){if(parm1.ge tS ource()==newButto n){textBox.append("您点击了新建按钮");

}e lse if(parm1.getSource()==openButto n){textBox.append("您点击了打开按钮");

}else if(parm1.getSource()==saveButton){textBox.append("您点击了保存按钮");

}

}

各个按钮的事件响应的结果示图

IMIDC(rainbow cloud):香港/台湾/日本/莫斯科独立服务器特价,闪购大促销,最低30usd/月起

imidc怎么样?imidc彩虹网路,rainbow cloud知名服务器提供商。自营多地区数据中心,是 Apnic RIPE Afrinic Arin 认证服务商。拥有丰富的网路资源。 在2021年 6.18 开启了输血大促销,促销区域包括 香港 台湾 日本 莫斯科 等地促销机型为 E3係,参与促销地区有 香港 日本 台湾 莫斯科 等地, 限量50台,售罄为止,先到先得。所有服务器配置 CPU ...

atcloud:480G超高防御VPS低至$4/月,美国/新加坡等6机房,512m内存/1核/500g硬盘/不限流量

atcloud主要提供常规cloud(VPS)和storage(大硬盘存储)系列VPS,其数据中心分布在美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国、新加坡,所有VPS默认提供480Gbps的超高DDoS防御+不限流量,杜绝DDoS攻击骚扰,比较适合海外建站等相关业务。ATCLOUD.NET是一家成立于2020年的海外主机商,主要提供KVM架构的VPS产品、LXC容器化产品、权威DNS智能解...

RAKSmart VPS主机半价活动 支持Windows系统 包含香港、日本机房

RAKSmart 商家最近动作还是比较大的,比如他们也在增加云服务器产品,目前已经包含美国圣何塞和洛杉矶机房,以及这个月有新增的中国香港机房,根据大趋势云服务器算是比较技术流的趋势。传统的VPS主机架构方案在技术层面上稍微落后一些,当然也是可以用的。不清楚是商家出于对于传统VPS主机清理库存,还是多渠道的产品化营销,看到RAKSmart VPS主机提供美国、香港和日本机房的半价促销,当然也包括其他...

java编程工具为你推荐
google地球打不开为什么google earth打不开qq讨论组怎样进QQ讨论组淘宝收费淘宝都什么服务是收费的?百度抢票浏览器百度浏览器怎么抢票?吴晓波频道买粉罗辑思维,晓松奇谈,鸿观,吴晓波频道,财经郎眼哪个更有深度网站运营我想成为网站运营的人我该学什么??arm开发板arm开发板是干什么用的,是用在什么领域方面的ios7固件下载iOS的固件有正版盗版之分吗?我看到了蜂威网有iOS7的固件想下载试用一下,那里是测试版是正版吗bt封杀北京禁用BT下载,是真的吗?为什么?2012年正月十五山西省太原市2012年正月十五活动的相关情况
免费域名注册 cc域名 视频空间租用 vps服务器 域名备案中心 新网域名管理 草根过期域名 mediafire下载工具 表单样式 光棍节日志 ibrs 湖南服务器托管 创梦 免费美国空间 电信主机 网站在线扫描 监控服务器 测速电信 七牛云存储 酷锐 更多