制作网页的网站推荐wordpress rss采集

bicheng/2026/1/20 13:02:23/文章来源:
制作网页的网站推荐,wordpress rss采集,vs做的网站项目可以改名字吗,学 网站开发背景 实际业务中经常需要展示某个网站, 并且希望在展示的时候单击网站可直接访问, 本节演示在表格中如何添加超链接支持. 需求 假设我需要渲染一个Study类, 它只有三个属性id,name和website, 其中id只支持展示, name只支持编辑, 而website只支持单击时跳转到相应的网站, 效果…背景 实际业务中经常需要展示某个网站, 并且希望在展示的时候单击网站可直接访问, 本节演示在表格中如何添加超链接支持. 需求 假设我需要渲染一个Study类, 它只有三个属性id,name和website, 其中id只支持展示, name只支持编辑, 而website只支持单击时跳转到相应的网站, 效果图如下: 方案 要在表格中添加超链接支持, 需要特殊的CellLableProvider, Jface提供了ColumnLabelProvider, 要想实现超链接, 只需要重新实现其中的update和getText方法. 方法名方法签名功能描述getTextString getText(Object element)提供表格渲染后展示的文本的内容updatevoid update(ViewerCell cell)提供表格对象的额外展示项, 比如背景颜色, 字体的设置等等 我们的超链接支持就可以放在update中来进行扩展实现: 创建Link对象, 并通过TableEditor将其与TableItem关联起来添加Link对象的单击事件监听, 点击时进行跳转 Link link new Link((Composite) cell.getControl(), SWT.NONE); link.setText(a study.website /a); TableItem item (TableItem) cell.getItem(); TableEditor editor new TableEditor(item.getParent()); editor.grabHorizontal true; editor.grabVertical true; editor.setEditor(link, item, cell.getColumnIndex()); editor.layout(); link.addListener(SWT.Selection, e - {try {Desktop.getDesktop().browse(new URI(study.website));} catch (IOException | URISyntaxException ex) {throw new RuntimeException(ex);} });注意实现 之前我们设置CellLabelProvider时是通过Tabel级别的对象进行的, 实际上我们往往是根据不同的Column来设置更为个性化的展示的, 因此, 在创建Column的同时设置CellLableProvider更为合理. 伪代码: TableViewer tableViewer ...; Table table tableViewer.getTable(); TableColumn tableColumn TableColumnFactory.newTableColumn(SWT.NONE)....create(table); TableViewerColumn tableViewerColumn new TableViewerColumn(tableViewer, tableColumn); // 每一列设置一个特定的cellLabelProvider tableViewerColumn.setLabelProvider(cellLabelProvider);源码 import org.eclipse.jface.viewers.*; import org.eclipse.jface.widgets.TableColumnFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.*;import java.awt.*; import java.io.IOException; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.net.URI; import java.net.URISyntaxException; import java.util.Optional;public class Study {Column(value ID, labelProviderClass StudyLabelProvider.class)public int id;Column(value 名称, labelProviderClass StudyLabelProvider.class, width 200)TextEditorpublic String name;Column(value 网站, labelProviderClass StudyLabelProvider.class, width 300)public String website;public Study(int id, String name, String website) {this.id id;this.name name;this.website website;}private static Study[] studies() {return new Study[]{new Study(1, github, https://github.com), new Study(2, 死磕Java, https://skjava.com)};}public static void main(String[] args) throws InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchMethodException {Display display new Display();Shell shell new Shell(display);shell.setLayout(new FillLayout());var tableViewer new TableViewer(shell, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);Table table tableViewer.getTable();table.setHeaderVisible(true);table.setLinesVisible(true);Field[] fields Study.class.getFields();for (Field field : fields) {Column column field.getAnnotation(Column.class);String columnText column.value();Class? extends CellLabelProvider labelProviderClass column.labelProviderClass();CellLabelProvider cellLabelProvider;if (!(CellLabelProvider.class labelProviderClass)) {Constructor? extends CellLabelProvider constructor labelProviderClass.getConstructor(String.class);cellLabelProvider constructor.newInstance(columnText);} else {cellLabelProvider new StudyLabelProvider(columnText);}TableColumn tableColumn TableColumnFactory.newTableColumn(SWT.NONE).width(column.width()).text(columnText).align(SWT.CENTER).create(table);TableViewerColumn tableViewerColumn new TableViewerColumn(tableViewer, tableColumn);tableViewerColumn.setLabelProvider(cellLabelProvider);EditingSupport editingSupport null;TextEditor textEditor field.getAnnotation(TextEditor.class);if (textEditor ! null) {Class? extends EditingSupport editingSupportClass textEditor.editingSupportClass();Constructor? extends EditingSupport constructor editingSupportClass.getConstructor(TableViewerColumn.class);editingSupport constructor.newInstance(tableViewerColumn);}Optional.ofNullable(editingSupport).ifPresent(tableViewerColumn::setEditingSupport);}ColumnViewerEditorActivationStrategy activationStrategy new ColumnViewerEditorActivationStrategy(tableViewer) {Overrideprotected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {// 只有双击事件才激活编辑器return event.eventType ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || event.eventType ColumnViewerEditorActivationEvent.PROGRAMMATIC || event.eventType ColumnViewerEditorActivationEvent.TRAVERSAL;}};table.setHeaderBackground(display.getSystemColor(SWT.COLOR_TITLE_BACKGROUND));table.setHeaderForeground(display.getSystemColor(SWT.COLOR_TITLE_FOREGROUND));TableViewerFocusCellManager focusCellManager new TableViewerFocusCellManager(tableViewer, new FocusCellOwnerDrawHighlighter(tableViewer));TableViewerEditor.create(tableViewer, focusCellManager, activationStrategy, ColumnViewerEditor.DEFAULT);tableViewer.setContentProvider(ArrayContentProvider.getInstance());tableViewer.setInput(Study.studies());shell.open();while (!shell.isDisposed()) {if (!display.readAndDispatch()) {display.sleep();}}}public static class StudyEditingSupport extends EditingSupport {private final TableViewerColumn tableViewerColumn;private final String title;public StudyEditingSupport(TableViewerColumn tableViewerColumn) {super(tableViewerColumn.getViewer());this.tableViewerColumn tableViewerColumn;TableColumn tableColumn tableViewerColumn.getColumn();this.title tableColumn.getText();}Overrideprotected CellEditor getCellEditor(Object o) {return new TextCellEditor(tableViewerColumn.getColumn().getParent());}Overrideprotected boolean canEdit(Object o) {return true;}Overrideprotected Object getValue(Object o) {if (!(o instanceof Study study)) {return ;}return switch (title) {case 名称 - study.name;default - study.website;};}Overrideprotected void setValue(Object o, Object o1) {if (!(o instanceof Study study)) {return;}switch (title) {case 名称 - study.name String.valueOf(o1);default - study.website String.valueOf(o1);}getViewer().refresh(o);}}public static class StudyLabelProvider extends ColumnLabelProvider {private final String title;public StudyLabelProvider(String title) {super();this.title title;}Overridepublic void update(ViewerCell cell) {if (!(cell.getElement() instanceof Study study)) {return;}var text switch (title) {case ID - String.valueOf(study.id);case 名称 - study.name;default - {Link link new Link((Composite) cell.getControl(), SWT.NONE);link.setText(a study.website /a);TableItem item (TableItem) cell.getItem();TableEditor editor new TableEditor(item.getParent());editor.grabHorizontal true;editor.grabVertical true;editor.setEditor(link, item, cell.getColumnIndex());editor.layout();link.addListener(SWT.Selection, e - {try {Desktop.getDesktop().browse(new URI(study.website));} catch (IOException | URISyntaxException ex) {throw new RuntimeException(ex);}});yield ;}};cell.setText(text);}Overridepublic String getText(Object element) {if (!(element instanceof Study study)) {return ;}return switch (title) {case ID - String.valueOf(study.id);case 名称 - study.name;default - study.website;};}}Retention(RetentionPolicy.RUNTIME)Target(ElementType.FIELD)public interface Column {String value();Class? extends CellLabelProvider labelProviderClass() default CellLabelProvider.class;int width() default 100;}Retention(RetentionPolicy.RUNTIME)Target(ElementType.FIELD)public interface TextEditor {Class? extends EditingSupport editingSupportClass() default StudyEditingSupport.class;} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做服装设计兼职的网站湖南做旅游网站哪家最好

目录 一.什么是Qt元对象系统? 二.编译时Qt Creator偷摸做了哪些事情? 1.uic 2.rcc 3.moc 一.什么是Qt元对象系统? Qt中的元对象系统(Meta-Object System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属…

点击图片跳转到网站怎么做链接网页源码下载

文章目录 1、交叉类型2、联合类型3、类型保护3.1 用户自定义的类型保护3.2 typeof 类型保护3.3 instanceof类型保护 4、类型别名4.1 定义- 接口 vs. 类型别名 5、可辨识联合6、索引类型6.1 类型操作符:- 索引类型查询操作符:keyof T- 索引访问操作符&…

马化腾做的电商网站建设部注册师网站

题目 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:s "Hello World" 输出&#…

潍坊手机网站建设南京网络优化培训

scratch像素画板 第十四届青少年蓝桥杯scratch编程省赛真题 一、题目要求 编程实现 1.点击绿旗,角色、背景如图所示(三种颜色调色盘、清除图标及方格角色请自行创建,点击绿旗后立刻呈现下图效果); 2.用鼠标点击红色调色盘,红色调色盘变为选中状态(如下图所示),此时鼠…

这么做3d网站做网站维护工商经营范围是什么

Amazon Simple Email Service (SES) 是一项强大的电子邮件发送服务,适用于数字营销、应用程序通知以及事务性邮件。在这个实战指南中,我们将演示如何设置 AWS SES 并通过几个示例展示其用法。 设置 AWS SES 1. 创建 AWS 账户 首先,您需要创…

宜春网站建设推广深圳营销型企业网站

车载诊断协议DoIP系列 —— 传输层控制协议(TCP)&用户数据报协议(UDP) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎…

网站规划的基本原则华梦服饰网站建设中

1 什么是迭代器,生成器,装饰器 2 django的信号用过吗?如何用,干过什么 3 什么是深拷贝,什么是浅拷贝,如何使用 3.1 浅拷贝 3.2 深拷贝 3.3 扩展(slice操作符和list构造函数) 1 什么是迭代器,生成…

网站开发准备工作网站开发薪水

2021年12月10日,由广东省游戏产业协会、广东省虚拟现实产业技术创新联盟、深圳市科学技术协会、深圳市互联网文化市场协会指导,陀螺科技主办,深圳市科技开发交流中心、恒悦创客魔方协办,行业头部媒体游戏陀螺、VR陀螺、陀螺电竞、…

cms网站建设的实训总结电子商务网站制作公司

文章目录 在Unity中,方括号 [ ] 通常用于表示属性、特性(Attributes)或者元数据(Metadata)。这些标记提供了附加信息,可以用于修改类、方法、字段等的行为或者在编辑器中进行设置。 以下是一些常见的用法&…

做外围网站代理违法吗南宁网络公司多少钱

使用LVM分区方式安装Manjaro发行版 为什么单独介绍LVM方式呢? 主要是由于使用系统的图形安装工具创建卷组会出问题,会导致图形安装工具直接挂掉,唯一的方法是提前手动创建好卷组。 GPT分区表 分区表有: MBR(主引导记录分区表)…

做结婚视频储存网站备案 个人网站

一. 免密登录 Grafana 的常用方式: 将配置好的Grafana图嵌入到系统页面中 为了实现可免登录访问,可以通过如下方式进行设置: 1. 修改Grafana配置文件 在Grafana的配置文件 /etc/grafana/grafana.ini 中,找到 [auth.anonymous] 配…

课工场网站建设培训网站美工做专题尺寸多少?

培训计划是预设好的一套课程系列,包含课程和考试,分多个阶段,每完成一个阶段就会在学习地图上留下标记,让用户看到自己的努力成果,增强成就感,从而坚持完成课程。 企业内部培训考试系统中如何设置培训计划…

网站写动态新闻有什么好处网站建设 快速

爬虫、网络编程、接口......对于Python工程师来讲都绕不过一个强大的模块---requests,本篇文章就深入详细讲一讲requests模块。同时也先也分享一下开源API网站:Gitee-API文档、JSONPlaceholder API文档、和风天气API文档、Postman Echo API网站&#xff…

现在什么类型网站没有人做微信怎么自己创建小程序

做副业项目,保持平常心。 不能因为自认为很好的作品,数据不好看,就哭哭闹闹。 平常心,坚持日更,保持持续刷新自己,提升自己的飞轮状态。 不以物喜,不以己悲,哈哈。 无论是副业还是…

义乌网站建设九在哪里可以买到客户数据

纯函数就是,对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环境的状态但是实际的编程中,特别是前端的编程范畴里,“不依赖外部环境”这个条件是根本不可能的,我…

网站建设创客下载应用商店app下载安装

幻兽帕鲁服务器价格多少钱?4核16G服务器Palworld官方推荐配置,阿里云4核16G服务器32元1个月、96元3个月,腾讯云换手帕服务器服务器4核16G14M带宽66元一个月、277元3个月,8核32G22M配置115元1个月、345元3个月,16核64G3…

深圳网站建设推荐q479185700顶上先用ps后用dw做网站

随着温室气体排放量的增大和温室效应的增强,全球气候变化问题受到日益的关注。我国政府庄严承诺在2030和2060年分别达到“碳达峰”和“碳中和”,因此气候变化和碳排放已经成为科研人员重点关心的问题之一。气候变化问题不仅仅是科学的问题,同…

做网站论坛赚钱关于网站建设的调查问卷

MySQL 存储过程 优点缺点一、存储过程的创建和调用创建存储过程实例1、in 输入参数2、out输出参数3、inout输入参数 三、变量1. 变量定义2. 变量赋值3. 用户变量 四、注释MySQL存储过程的调用MySQL存储过程的查询MySQL存储过程的修改MySQL存储过程的删除MySQL存储过程的控制语句…

wordpress文章页个性化设置seo外包顾问

腾讯云服务器地域怎么选择?不同地域之间有什么区别?腾讯云哪个地域好?地域选择遵循就近原则,访客距离地域越近网络延迟越低,速度越快。腾讯云百科txybk.com告诉大家关于地域的选择还有很多因素,地域节点选择…

房产网站排名自己做网站的网址

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题的思路是要相比较一边,然后在比较另外一边,左右两边一起比较的代码非常难写…