老铁们,大家好,相信还有很多朋友对于动态添加点击事件和js给动态添加的元素绑定事件的相关问题不太懂,没关系,今天就由我来为大家分享分享动态添加点击事件以及js给动态添加的元素绑定事件的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
有时候我们需要在JTable中嵌入JButton,使得点击某个JTable单元格时,用户感觉通过JButton触发了响应事件。下面我们看看为JTable单元格添加按钮效果和响应事件的方法。以下示例实现的效果为:点击jtable中的button,button上的数字自动加1,并将加1后得到的数字正确显示在button上。
JTable中,单元格的数据显示默认是JTable的效果。如果我们想要按钮显示的效果的话,需要实现swing接口:javax.swing.table.TableCellRenderer,来改变单元格默认的渲染方法。
importjavax.swing.table.TableCellRenderer;
publicclassMyButtonRendererimplementsTableCellRenderer{
panel.add(button,BorderLayout.CENTER);
panel.setLayout(newBorderLayout());
publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,
booleanisSelected,booleanhasFocus,introw,intcolumn){
button.setText(value==null?"":String.valueOf(value));
}
二、添加按钮响应事件
第1步中我们为表格添加了渲染器,但是渲染器只负责显示效果,要想点击”按钮“之后有响应,还得跟单元格的编辑器有关。点击表格是会触发表格的编辑时间,所以我们按钮的响应事件可以写在编辑器中,我们需要修改表格的默认编辑器实现。
swing中有个类javax.swing.DefaultCellEditor提供对单元格内插入JTextField/JComboBox/JCheckbox这3种控件,但是不提供对JButton的支持(1.7里不支持,不代表以后不会支持),所以我们得用到另外一个类自己写TableCellEditor,这个类是avax.swing.AbstractCellEditor。
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.AbstractCellEditor;
importjavax.swing.JOptionPane;
importjavax.swing.table.TableCellEditor;
publicclassMyButtonEditorextendsAbstractCellEditorimplements
privatestaticfinallongserialVersionUID=-6546334664166791132L;
panel.add(this.button,BorderLayout.CENTER);
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intres=JOptionPane.showConfirmDialog(null,
"Doyouwanttoadd1toit?","chooseone",
if(res==JOptionPane.YES_OPTION){
panel.setLayout(newBorderLayout());
publicComponentgetTableCellEditorComponent(JTabletable,Objectvalue,
booleanisSelected,introw,intcolumn){
button.setText(value==null?"":String.valueOf(value));
publicObjectgetCellEditorValue(){
}
需要注意的是得重写TableModel的isCellEditable方法,因为只有为重写Editor的列开启了可编辑功能,单元格才能被编辑,也就才能出发按钮单击事件。在下一段代码中有体现。
需要注意的是得重写TableModel的isCellEditable方法,因为只有为重写Editor的列开启了可编辑功能,单元格才能被编辑,也就才能出发按钮单击事件。在下一段代码中有体现。
另外要注意得禁止掉JTable的行选中功能。否则我们再点击按钮时,JTable不知道是响应为”行选中“还是”按钮单击事件“。
importjavax.swing.JScrollPane;
importjavax.swing.table.DefaultTableModel;
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
TestTablewindow=newTestTable();
window.frame.setVisible(true);
frame.setBounds(100,100,450,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
panel.setBounds(10,10,414,242);
frame.getContentPane().add(panel);
JScrollPanescrollPane=newJScrollPane();
scrollPane.setBounds(10,10,394,222);
scrollPane.setViewportView(table);
table.setModel(newDefaultTableModel(){
publicObjectgetValueAt(introw,intcolumn){
publicvoidsetValueAt(ObjectaValue,introw,intcolumn){
fireTableCellUpdated(row,column);
publicbooleanisCellEditable(introw,intcolumn){
table.getColumnModel().getColumn(2).setCellEditor(
table.getColumnModel().getColumn(2).setCellRenderer(
table.setRowSelectionAllowed(false);
1、新建一个html文件,命名为test.html。
2、在test.html文件中,使用script标签加载jquery.min.js文件,成功加载该文件,才能使用jquery方法。
3、在js标签内,在页面加载完成时,获取body对象,使用append()方法向body动态添加一个div元素。
4、在test.html文件中,使用button标签创建一个按钮,按钮名称为“获取id值”。
5、在test.html文件中,给button按钮绑定onclick点击事件,当按钮被点击时,执行getid()函数。
6、在js标签内,创建getid()函数,在函数内,通过元素名称获得div对象,使用attr()方法获得动态添加div的id值,并使用alert()方法将值输出。
7、在浏览器打开test.html文件,点击按钮,查看结果。
axure是一款强大的原型软件,动态面板也是其常用的元件之一,功能强大。这个经验通过使用动态面板制作一个5秒的动态倒计时来了解一下动态面板的功能。
1、打开axure,新建一个空白文件
3、双击动态面板并给动态面板命名,然后点击添加,添加5个面板层
4、点击编辑全部状态进入编辑状态
5、在state1中动态面板范围内拖入文本标签并输入5,然后修改字体大小至合理
6、选中文本标签并按Ctrl+C复制文本框
7、按照顺序在state2中Ctrl+V粘贴,并将文本框中数字改为4(此步骤是为了保证字都在一个位置)
8、按照6、7步骤分别在state3、state4、state5、state6中写上3、2、1、0
9、回到主页(index)页面点击选中动态面板后在右边的属性栏双击交互处的载入时
10、在事件窗口找到设置面板状态,并单击添加
11、勾选当前元件并选择为state1
12、勾选动态面板并选择状态为NEXT
13、勾选向后循环并将循环间隔设置为1000毫秒,点击确定
14、在属性栏状态中鼠标单击事件使事件处于选中状态,Ctrl+C复制事件
15、鼠标点击case1选中后Ctrl+V粘贴5个事件,如图
16、双击case1进入编辑状态,按照图片提示进行依次设置
17、将最后一个当前元件设置为state6后,将其动态面板状态选择为停止,点击确定。就可以在主页页面发布预览效果啦~
小编是axure8.0测试版,可能跟读者的版本有出入,但是本经验的整体步骤各个版本软件是差不多的,不影响本经验的指导作用。
axure设置动态面板,使得我们的原型界面交互性能更强,以达到我们的业务需求,更能展示业务需求的形象性。
2、从左侧元件库中拖拽动态面板组件
3、调出位置和大小面板:查看位置和大小,调整动态面板的尺寸
4、右键,编辑选项-----》管理面板状态
5、给动态面板起名,可增添,删改面板状态
6、然后右键动态面板----》编辑选项---》设置为隐藏
7、添加一个按钮元件,然后给按钮添加点击事件
9、双击页面的动态面板----》显示面板,然后打钩
10、生成HTML页面,如下图所示的效果,点击按钮即可显示动态面板的框框
动态添加点击事件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于js给动态添加的元素绑定事件、动态添加点击事件的信息别忘了在本站进行查找哦。
上一篇:动如脱兔加点,关关张战法加点