一:Ext.toolbar.ToolBar是工具栏的基础组件,相当于容器,在其中可以放置各种工具栏元素:按钮、文字和菜单组件。
Eg:
//简单的工具栏
var toolbar=new Ext.toolbar.Toolbar({
renderTo:'toolbar',
width:300
});
//向工具栏中添加按钮(添加了新建、打开、保存三个菜单按钮)
toolbar.add([
{
text:'新建',//按钮上的文字
handler:onButtonClick,//单击按钮的处理函数
iconCls:'newIcon'//在按钮上显示的图标
},
{ text:'打开',handler:onButtonClick,iconCls:'openIcon'},
{ text:'保存',handler:onButtonClick,iconCls:'saveIcon'}
]);
function onButtonClick(btn){//点击按钮时调用的处理函数
alert(btn.text);
}
复杂的工具栏:
//复杂的工具栏
var toolbar=new Ext.toolbar.Toolbar({
renderTo:'toolbar',
width:500
});
//向工具栏中添加按钮(添加了新建、打开、保存三个菜单按钮)
toolbar.add([
{text:'新建'},{text:'打开'},{text:'编辑'},{text:'保存'},
'-',//创建一个工具栏分割元素
{//加入表单元素
xtype:'textfield',
hideLabel:true,
width:150
},
'->',//创建一个充满工具栏的空白元素
'<a href=#>超链接</a>',
{xtype:'tbspacer',width:50},//加入一个空白元素,宽度为50像素
'静态文本'//加入一个简单的字符串
]);
//复杂的工具栏
var toolbar=new Ext.toolbar.Toolbar({
renderTo:'toolbar',
width:500,
items:[{
text:'新建',
handler:onButtonClick//点击按钮的处理函数
},
{text:'打开', handler:onButtonClick},
{text:'保存', handler:onButtonClick},
]
});
function onButtonClick(btn){//点击按钮时调用的处理函数
alert(btn.text);//显示按钮上的文字
}
Ext.get('enableBtn').on('click',function(){
toolbar.enable();//启用工具栏
});
Ext.get('disableBtn').on('click',function(){
toolbar.disable();//禁用工具栏
});
二:菜单栏
Ext.menu.Menu菜单:菜单项的容器,在菜单组件中,可以容纳Ext.menu.Item菜单项也可以容纳普通组件。
//多级菜单
var toolbar = new Ext.toolbar.Toolbar({
renderTo : 'toolbar',
width : 300
});
var infoMenu = new Ext.menu.Menu({//一级菜单
ignoreParentClicks : true,//忽略父菜单的单击事件
plain : true,//是否移除菜单左侧的竖线
items : [ {
text : '个人信息',
menu : new Ext.menu.Menu({//二级菜单
ignoreParentClicks : true,//忽略父菜单的单击事件
items : [ {
text : '基本信息',
menu : new Ext.menu.Menu({//三级菜单
items : [ {
text : '身高',
handler : onMenuItem
}, {
text : '体重',
handler : onMenuItem
} ]
})
} ]
})
}, {
text : '公司信息'
} ]
});
toolbar.add({
text : '设置',
menu : infoMenu
});//将菜单加入工具栏
function onMenuItem(item) {
alert(item.text);//获取菜单项的text属性
}
//带选择框的菜单实例
var themeMenu = new Ext.menu.Menu({//文件创建菜单
items : [ {
text : '主体颜色',
menu : new Ext.menu.Menu({
items : [ {
text : '红色主题',
checked : true,//初始为选中状态
group : 'theme',//为单选项进行分组
checkHandler : onItemCheck
}, {
text : '蓝色颜色',
checked : false,
group : 'theme',//为单选项进行分组
checkHandler : onItemCheck
}, {
text : '黑色颜色',
checked : false,
group : 'theme',//为单选项进行分组
checkHandler : onItemCheck
} ]
})
}, {
text : '是否启用',
checked : false
} ]
});
toolbar.add({
text : '风格选择',
menu : themeMenu
});//将菜单加入工具栏
function onItemCheck(item){
alert(item.text);
}
三:最常用的表单
Ext.form.Basic是基本的表单组件,提供了字段管理、数据验证、表单提交、数据加载等功能,它作用于Ext.container.Container容器,但推荐使用Ext.from.Panel作为表单容器,Ext.from.Panel会自动关联到Ext.form.Basic实例,方便进行字段的配置。
Ext.form.Basic 委托于Ext.form.Action进行数据的提交和加载,默认的提交动作是Ext.form.action.Submit 采用Ajax方式进行异步数据提交,如果要用原始方式提交表单可以使用Ext.form.action.standardSubmit方法。如果通过表单进行文件上传,则不能通过标准的Ajax方式进行,在ExtJS内部会通过iframe模拟Ajax进行异步表单文件上传操作。
最基本的表单:
Ext.require([ '*' ]);
Ext.onReady(function() {
Ext.QuickTips.init();//初始化信息提示框功能
var form=new Ext.form.Panel({
title:'表单',//表单标题
height:120,
width:200,
frame:true,//是否渲染表单
renderTo:'form',
defaults:{//统一设置表单字段默认属性
//autoFitErrors:false,//展示错误信息时是否有自动调整字段组件宽度,默认为true
labelSeparator:':',//分隔符
labelWidth:50,//标签宽度
width:150,//字段宽度
allowBlank:false,//是否允许为空
blankText:'不允许为空',
labelAlign:'left',//标签对齐方式
msgTarget:'side'//qtip:显示一个浮动提示信息; title:显示一个浏览器原始的浮动提示信息;
//under:在字段下方显示一个提示信息; side:在字段右边显示一个提示信息;none:不显示提示信息;errorMsg:在errorMsg元素内显示信息
},
items:[
{xtype:'textfield',fieldLabel:'姓名'},
{xtype:'numberfield',fieldLabel:'年龄'}]
});
});
四:表单其他控件
表单其他控件:
//Ext.form.field.Text 示例
var loginForm=new Ext.form.Panel({
title:'Ext.form.field.Text示例',
bodyStyle:'padding:5 5 5 5',//表单边距
frame:true,
width:270,
renderTo:'loginForm',
defaultType:'textfield',//设置表单字段的默认类型
defaults:{
labelSeparator:':',//分隔符
labelWidth:60,//标签宽度
width:150,//字段宽度
allowBlank:false,
labelAlign:'left',
msgTarget:'qtip'//设置显示提示信息的位置
},
items:[{
fieldLabel:'用户名',
name:'userName',
selectionOnFocus:true,//得到焦点时自动选择文本
//验证电子邮件格式的正则表达式
regex:/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]{2,4})$/,
regexText:'格式错误'//验证错误之后的提示信息
},
{
name:'password',
fieldLabel:'密码',
inputType:'password'//设置输入类型为password
},
{//textarea 实例
xtype:'textarea',
fieldLabel:'备注',
id:'memo',
labelWidth:50,
width:200
},
//数字框
{
xtype:'numberfield',
fieldLabel:'整数',
hideTrigger:true,//隐藏微调按钮
allowDecimals:false,//不允许输入小数
nanText:'请输入有效的整数'//输入无效数字的提示
},
{
xtype:'numberfield',
fieldLabel:'小数',
hideTrigger:false,
decimalPrecision:2,
allowDecimals:true,
nanText:'请输入有效的小数'
},
{
xtype:'numberfield',
fieldLabel:'数字限制',
baseChars:'12345'
},
{
xtype:'numberfield',
fieldLabel:'数值限制',
maxValue:100,
minValue:50
},
//Ext.form.field.Radio 以及Ext.from.field.CheckBox 示例
{
xtype:'radio',
name:'sex',//name相同的单选框会作为一组
fieldLabel:'性别',
boxLabel:'男'
},
{
xtype:'radio',
name:'sex',//name相同的单选框会作为一组
fieldLabel:'性别',
boxLabel:'女'
},{
xtype:'checkboxfield',
name:'swim',
fieldLabel:'爱好',
boxLabel:'游泳'
},
{
xtype:'checkboxfield',
name:'walk',
fieldLabel:'爱好',
boxLabel:'散步'
},
//radiogroup
{
xtype:'radiogroup',
fieldLabel:'性别',
colums:2,//2列
items:[
{boxLabel:'男',name:'sex',inputValue:'male'},
{boxLabel:'女',name:'sex',inputValue:'female'}
]
},
{
xtype:'checkboxgroup',
fieldLabel:'爱好',
width:270,
columns:3,
items:[
{boxLabel:'游泳',name:'swim'},
{boxLabel:'散步',name:'walk'},
{boxLabel:'阅读',name:'read'},
{boxLabel:'游戏',name:'game'},
{boxLabel:'电影',name:'film'}
]
},
//Trigger:扩展自Ext.form.field.Text,增加了一个可以点击的触发按钮
{
xtype:'triggerfield',
id:'memo1',
fieldLabel:'触发字段',
hiderTrigger:false,//不隐藏触发按钮
onTriggerClick:function(){
var memo1=loginForm.getForm().findField("memo1");
alert(memo1.getValue());
Ext.getCmp('memo1').setValue('test');
}
},
//微调按钮的使用
{
xtype:'spinnerfield',
fieldLabel:'微调字段',
id:'salary',
value:100,
onSpinUp:function(){
var salaryCmp=Ext.getCmp('salary');//通过组建的id获取组建对象
//增加默认值
salaryCmp.setValue(Number(salaryCmp.getValue())+1);
},
onSpinDown:function(){
var salaryCmp=Ext.getCmp('salary');//通过组建的id获取组建对象
//增加默认值
salaryCmp.setValue(Number(salaryCmp.getValue())-1);
}
}
],
buttons:[{
text:'登陆',
handler:function(){
loginForm.form.setValues({userName:'user@com',password:'123456'});
}
},
{text:'确定',handler:showValue}
]
});
function showValue(){
var memo=loginForm.getForm().findField('memo');//取得输入控件
alert(memo.getValue());//获得控制输入的值
}
//Trigger:扩展自Ext.form.field.Text,增加了一个可以点击的触发按钮;
注:在实际开发中很少直接使用Trigger字段,ExtJS对Trigger做了两个基本的扩充:Ext.form.field.Picker和Ext.form.field.Spinner 微调字段
Eg:
//简单的工具栏
var toolbar=new Ext.toolbar.Toolbar({
renderTo:'toolbar',
width:300
});
//向工具栏中添加按钮(添加了新建、打开、保存三个菜单按钮)
toolbar.add([
{
text:'新建',//按钮上的文字
handler:onButtonClick,//单击按钮的处理函数
iconCls:'newIcon'//在按钮上显示的图标
},
{ text:'打开',handler:onButtonClick,iconCls:'openIcon'},
{ text:'保存',handler:onButtonClick,iconCls:'saveIcon'}
]);
function onButtonClick(btn){//点击按钮时调用的处理函数
alert(btn.text);
}
复杂的工具栏:
//复杂的工具栏
var toolbar=new Ext.toolbar.Toolbar({
renderTo:'toolbar',
width:500
});
//向工具栏中添加按钮(添加了新建、打开、保存三个菜单按钮)
toolbar.add([
{text:'新建'},{text:'打开'},{text:'编辑'},{text:'保存'},
'-',//创建一个工具栏分割元素
{//加入表单元素
xtype:'textfield',
hideLabel:true,
width:150
},
'->',//创建一个充满工具栏的空白元素
'<a href=#>超链接</a>',
{xtype:'tbspacer',width:50},//加入一个空白元素,宽度为50像素
'静态文本'//加入一个简单的字符串
]);
//复杂的工具栏
var toolbar=new Ext.toolbar.Toolbar({
renderTo:'toolbar',
width:500,
items:[{
text:'新建',
handler:onButtonClick//点击按钮的处理函数
},
{text:'打开', handler:onButtonClick},
{text:'保存', handler:onButtonClick},
]
});
function onButtonClick(btn){//点击按钮时调用的处理函数
alert(btn.text);//显示按钮上的文字
}
Ext.get('enableBtn').on('click',function(){
toolbar.enable();//启用工具栏
});
Ext.get('disableBtn').on('click',function(){
toolbar.disable();//禁用工具栏
});
二:菜单栏
Ext.menu.Menu菜单:菜单项的容器,在菜单组件中,可以容纳Ext.menu.Item菜单项也可以容纳普通组件。
//多级菜单
var toolbar = new Ext.toolbar.Toolbar({
renderTo : 'toolbar',
width : 300
});
var infoMenu = new Ext.menu.Menu({//一级菜单
ignoreParentClicks : true,//忽略父菜单的单击事件
plain : true,//是否移除菜单左侧的竖线
items : [ {
text : '个人信息',
menu : new Ext.menu.Menu({//二级菜单
ignoreParentClicks : true,//忽略父菜单的单击事件
items : [ {
text : '基本信息',
menu : new Ext.menu.Menu({//三级菜单
items : [ {
text : '身高',
handler : onMenuItem
}, {
text : '体重',
handler : onMenuItem
} ]
})
} ]
})
}, {
text : '公司信息'
} ]
});
toolbar.add({
text : '设置',
menu : infoMenu
});//将菜单加入工具栏
function onMenuItem(item) {
alert(item.text);//获取菜单项的text属性
}
//带选择框的菜单实例
var themeMenu = new Ext.menu.Menu({//文件创建菜单
items : [ {
text : '主体颜色',
menu : new Ext.menu.Menu({
items : [ {
text : '红色主题',
checked : true,//初始为选中状态
group : 'theme',//为单选项进行分组
checkHandler : onItemCheck
}, {
text : '蓝色颜色',
checked : false,
group : 'theme',//为单选项进行分组
checkHandler : onItemCheck
}, {
text : '黑色颜色',
checked : false,
group : 'theme',//为单选项进行分组
checkHandler : onItemCheck
} ]
})
}, {
text : '是否启用',
checked : false
} ]
});
toolbar.add({
text : '风格选择',
menu : themeMenu
});//将菜单加入工具栏
function onItemCheck(item){
alert(item.text);
}
三:最常用的表单
Ext.form.Basic是基本的表单组件,提供了字段管理、数据验证、表单提交、数据加载等功能,它作用于Ext.container.Container容器,但推荐使用Ext.from.Panel作为表单容器,Ext.from.Panel会自动关联到Ext.form.Basic实例,方便进行字段的配置。
Ext.form.Basic 委托于Ext.form.Action进行数据的提交和加载,默认的提交动作是Ext.form.action.Submit 采用Ajax方式进行异步数据提交,如果要用原始方式提交表单可以使用Ext.form.action.standardSubmit方法。如果通过表单进行文件上传,则不能通过标准的Ajax方式进行,在ExtJS内部会通过iframe模拟Ajax进行异步表单文件上传操作。
最基本的表单:
Ext.require([ '*' ]);
Ext.onReady(function() {
Ext.QuickTips.init();//初始化信息提示框功能
var form=new Ext.form.Panel({
title:'表单',//表单标题
height:120,
width:200,
frame:true,//是否渲染表单
renderTo:'form',
defaults:{//统一设置表单字段默认属性
//autoFitErrors:false,//展示错误信息时是否有自动调整字段组件宽度,默认为true
labelSeparator:':',//分隔符
labelWidth:50,//标签宽度
width:150,//字段宽度
allowBlank:false,//是否允许为空
blankText:'不允许为空',
labelAlign:'left',//标签对齐方式
msgTarget:'side'//qtip:显示一个浮动提示信息; title:显示一个浏览器原始的浮动提示信息;
//under:在字段下方显示一个提示信息; side:在字段右边显示一个提示信息;none:不显示提示信息;errorMsg:在errorMsg元素内显示信息
},
items:[
{xtype:'textfield',fieldLabel:'姓名'},
{xtype:'numberfield',fieldLabel:'年龄'}]
});
});
四:表单其他控件
表单其他控件:
//Ext.form.field.Text 示例
var loginForm=new Ext.form.Panel({
title:'Ext.form.field.Text示例',
bodyStyle:'padding:5 5 5 5',//表单边距
frame:true,
width:270,
renderTo:'loginForm',
defaultType:'textfield',//设置表单字段的默认类型
defaults:{
labelSeparator:':',//分隔符
labelWidth:60,//标签宽度
width:150,//字段宽度
allowBlank:false,
labelAlign:'left',
msgTarget:'qtip'//设置显示提示信息的位置
},
items:[{
fieldLabel:'用户名',
name:'userName',
selectionOnFocus:true,//得到焦点时自动选择文本
//验证电子邮件格式的正则表达式
regex:/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]{2,4})$/,
regexText:'格式错误'//验证错误之后的提示信息
},
{
name:'password',
fieldLabel:'密码',
inputType:'password'//设置输入类型为password
},
{//textarea 实例
xtype:'textarea',
fieldLabel:'备注',
id:'memo',
labelWidth:50,
width:200
},
//数字框
{
xtype:'numberfield',
fieldLabel:'整数',
hideTrigger:true,//隐藏微调按钮
allowDecimals:false,//不允许输入小数
nanText:'请输入有效的整数'//输入无效数字的提示
},
{
xtype:'numberfield',
fieldLabel:'小数',
hideTrigger:false,
decimalPrecision:2,
allowDecimals:true,
nanText:'请输入有效的小数'
},
{
xtype:'numberfield',
fieldLabel:'数字限制',
baseChars:'12345'
},
{
xtype:'numberfield',
fieldLabel:'数值限制',
maxValue:100,
minValue:50
},
//Ext.form.field.Radio 以及Ext.from.field.CheckBox 示例
{
xtype:'radio',
name:'sex',//name相同的单选框会作为一组
fieldLabel:'性别',
boxLabel:'男'
},
{
xtype:'radio',
name:'sex',//name相同的单选框会作为一组
fieldLabel:'性别',
boxLabel:'女'
},{
xtype:'checkboxfield',
name:'swim',
fieldLabel:'爱好',
boxLabel:'游泳'
},
{
xtype:'checkboxfield',
name:'walk',
fieldLabel:'爱好',
boxLabel:'散步'
},
//radiogroup
{
xtype:'radiogroup',
fieldLabel:'性别',
colums:2,//2列
items:[
{boxLabel:'男',name:'sex',inputValue:'male'},
{boxLabel:'女',name:'sex',inputValue:'female'}
]
},
{
xtype:'checkboxgroup',
fieldLabel:'爱好',
width:270,
columns:3,
items:[
{boxLabel:'游泳',name:'swim'},
{boxLabel:'散步',name:'walk'},
{boxLabel:'阅读',name:'read'},
{boxLabel:'游戏',name:'game'},
{boxLabel:'电影',name:'film'}
]
},
//Trigger:扩展自Ext.form.field.Text,增加了一个可以点击的触发按钮
{
xtype:'triggerfield',
id:'memo1',
fieldLabel:'触发字段',
hiderTrigger:false,//不隐藏触发按钮
onTriggerClick:function(){
var memo1=loginForm.getForm().findField("memo1");
alert(memo1.getValue());
Ext.getCmp('memo1').setValue('test');
}
},
//微调按钮的使用
{
xtype:'spinnerfield',
fieldLabel:'微调字段',
id:'salary',
value:100,
onSpinUp:function(){
var salaryCmp=Ext.getCmp('salary');//通过组建的id获取组建对象
//增加默认值
salaryCmp.setValue(Number(salaryCmp.getValue())+1);
},
onSpinDown:function(){
var salaryCmp=Ext.getCmp('salary');//通过组建的id获取组建对象
//增加默认值
salaryCmp.setValue(Number(salaryCmp.getValue())-1);
}
}
],
buttons:[{
text:'登陆',
handler:function(){
loginForm.form.setValues({userName:'user@com',password:'123456'});
}
},
{text:'确定',handler:showValue}
]
});
function showValue(){
var memo=loginForm.getForm().findField('memo');//取得输入控件
alert(memo.getValue());//获得控制输入的值
}
//Trigger:扩展自Ext.form.field.Text,增加了一个可以点击的触发按钮;
注:在实际开发中很少直接使用Trigger字段,ExtJS对Trigger做了两个基本的扩充:Ext.form.field.Picker和Ext.form.field.Spinner 微调字段
发表评论
-
ExtJs tree
2014-04-16 14:00 0一:简单的树面板实例 Ext.onready(function ... -
Extjs tree 异步加载 实例
2014-04-16 13:33 929一:jsp 页面 <%@ page contentTy ... -
ExtJS insertHtml() overwrite() Format提供常用的格式化方法
2013-09-22 10:35 1178var insertPanel=new Ext.Panel({ ... -
ExtJs Ext.KeyNav 为元素提供简单的按键事件,多线程
2013-09-22 10:27 923KeyNav 按键事件 /** Ext.KeyNa ... -
ExtJS 表格 树结构
2013-09-22 10:19 1266Ext.require(['*']); Ext.define( ... -
ExtJS 遍历集合
2013-09-22 10:12 1081<script type="text/java ... -
ExtJS 表单验证
2013-06-17 15:48 1012使用特定类型的表单组件 使用regex正则表达式对输入内容进行 ... -
ExtJS 中Label、Fieldset字段集、FieldContainer 容器字段
2013-06-17 14:12 4543Ext.form.Label:可以与表单中的一个字段进行关联, ... -
ExtJS 微调控件ComnoBox和Time、Date的使用
2013-06-08 16:23 1031微调组件是一个具有上下控制按钮的输入组件,该组件一般不直接使用 ... -
ExtJS 4.0 基本功能
2013-06-04 09:51 1309一:ExtJS 组件配置方式 ... -
ExtJS form表单提交
2013-05-30 15:40 915简单的Form 表单提交: 一:普通方式提交: <%@ ... -
ExtJS 入门—我的第一个ExtJS程序
2013-05-27 11:33 919详情请看:http://dev.sencha.com/depl ...
相关推荐
主要是对wxpython的toolbar工具栏和menu菜单组件进行一个讲解,toolbar和menu作为一个较为常用的组件,在大部分的界面开发中都可能会使用到,以及对wxpython的主界面上的一些细节进行处理
vs2010 CMFCToolBar 工具栏 如何修改背景颜色
qt 菜单和工具栏简单工程,Toolbar可以看我的博文 ,https://blog.csdn.net/lxj362343/article/details/105626056
为菜单和按钮添加自己的自定义组件 使用标准的 热键支持 兼容触摸设备 轻松的多语言实施( ) :speech_balloon: 如果您打算构建文档编辑器,还请签出 安装 在您的Vue.js项目中: npm install vue-file-toolbar-...
该工程是EVC4.0下+Emulator测试通过的,基于dialog的的工程同时添加工具栏和菜单源码
一、基础篇 1、Ext JS下载及配置 2、基本功能 2.1、Ext.MessageBox消息框 2.2、Ext.window.MessageBox 3、工具栏和菜单栏 3.1、Ext.toolbar.Toolbar工具栏 3.2、Ext.menu.Menu菜单栏 4、表单
许多软件界面都要在对话框上添加菜单和工具栏,但是介绍这方面知识的书又特别少,所以把这个源代码传上来,供大家参考.
给对话框程序添加 菜单/工具栏,察看MFC 单文档 源代码,并实现之。
使用Toolbar工具来实现DrawerLayout左侧滑动菜单;Menu实现方式:PopupMenu
理解菜单和工具栏的主要用途和创建步骤。能根据具体问题合理使用菜单和工具栏。能具备编写简单事件问题处理方法的能力。
应用工具栏菜单 为您自己的可重复使用的Polymer元素提供起点的元素。 依存关系 元素依赖关系通过管理。 您可以通过以下方式进行安装: npm install -g bower 然后,继续下载该元素的依赖项: bower install 玩...
Internet Explorer可定制的工具栏,用JavaScript和HTML编写,旨在在网站上使用,以创建与浏览器融合的菜单。 使用框架和仅IE的某些功能-开发这些功能是为了增强跨浏览器的兼容性。
如下所示: exitAct = QAction(QIcon('exit.png'), '&Exit', self) exitAct.setShortcut('Ctrl+Q'...QAction 模块 :菜单栏或者 工具栏 ,或者自定义热键 后,软件执行的动作。 第一行指定一个实例,并设定名称 和对应
工具栏 Toolbar 笔记本 Notebooks 菜单构件 手工创建菜单 手工菜单示例 使用套件 套件示例 无文档构件 快捷标签 Accel Label 选项菜单 Option Menu 菜单项 Menu Items 复选菜单项 Check Menu ...
工具栏 Toolbar 笔记本 Notebooks 菜单构件 手工创建菜单 手工菜单示例 使用套件 套件示例 无文档构件 快捷标签 Accel Label 选项菜单 Option Menu 菜单项 Menu Items 复选菜单项 Check Menu Item ...
特征使用材料设计实现易于使用使用可扩展的列表视图在职的布局在布局中添加一个工具栏。 <android.support.v7.widget.Toolbar xmlns:android=...
//建立菜单栏 JMenuBar jMenuBar1 = new JMenuBar(); //建立菜单组 JMenu fileMenu = new JMenu ("文件(F)"); //建立菜单项 JMenuItem saveAsItem = new JMenuItem ("另存为(A)..."); JMenuItem exitItem=...
1. **菜单和工具栏创建**:`create_menu`和`create_toolbar`方法创建主菜单(文件和编辑)以及用于不同图像操作的工具栏按钮。 2. **图像显示和编辑**:`display_image`方法用于显示当前图像,自动调整图像大小以...
com_ssepan_mvcform:Java Swing GUI应用程序,带有一些标准菜单项,工具栏项和状态栏。 使用动作事件来实现它们(进行中的工作)(连接属性已更改并控制已更改的事件)
内容索引:VC/C++源码,界面编程,工具栏 Dialog中使用Menu和Toolbar,在用VC编程时,界面制作远不如Delphi、VB容易。我们又常常用到基于Dialog编写应用程序。而在直接在Dialog使用Toolbar和Menu的资料很少。作者总结...