杨教授工作室精心创作的优秀程序员职业提升必读系列资料
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("您点击了保存按钮");
}
}
各个按钮的事件响应的结果示图
对于如今的云服务商的竞争着实很激烈,我们可以看到国内国外服务商的各种内卷,使得我们很多个人服务商压力还是比较大的。我们看到这几年的服务商变动还是比较大的,很多新服务商坚持不超过三个月,有的是多个品牌同步进行然后分别的跑路赚一波走人。对于我们用户来说,便宜的服务商固然可以试试,但是如果是不确定的,建议月付或者主力业务尽量的还是注意备份。HostYun 最近几个月还是比较活跃的,在前面也有多次介绍到商...
DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...
日本vps云服务器怎么选择?很多人都会遇到日本vps和日本云服务器怎么选择的问题,日本云服务器具有免备案的特点。小编今天就分析一下日本云服务器价格多少钱,以方便大家选购的时候有个更加合适的取舍。日本云服务器租用前比较选择,高性能、安全、高效、免备案日本云服务器是很关键的因素。那么,日本云服务器该怎么选择呢?日本作为我们的邻国,与其贸易、文化往来是比较多的。日本云服务器价格多少钱一年?一、日本·CN...