在本文中,我们将带你了解JavaFXWebEngine中的HyperlinkListener在这篇文章中,我们将为您详细介绍JavaFXWebEngine中的HyperlinkListener的方方面
在本文中,我们将带你了解JavaFX WebEngine中的HyperlinkListener在这篇文章中,我们将为您详细介绍JavaFX WebEngine中的HyperlinkListener的方方面面,并解答javafxapplication常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的com.facebook.imagepipeline.listener.RequestLoggingListener的实例源码、com.intellij.ui.BrowserHyperlinkListener的实例源码、dom – 附加文本WebEngine – JavaFX、java – Android:在DialogInterface.OnClickListener()中的int是-1。
本文目录一览:- JavaFX WebEngine中的HyperlinkListener(javafxapplication)
- com.facebook.imagepipeline.listener.RequestLoggingListener的实例源码
- com.intellij.ui.BrowserHyperlinkListener的实例源码
- dom – 附加文本WebEngine – JavaFX
- java – Android:在DialogInterface.OnClickListener()中的int是-1
JavaFX WebEngine中的HyperlinkListener(javafxapplication)
过去,我使用过JEditorPane,现在我尽最大努力使用JavaFX
WebEngine。如何在显示的页面上为包含超链接的事件注册侦听器(如链接选择或单击链接)?
在JEditorPane中,有addHyperlinkListener方法…
编辑:
我遵循第一个答案中的建议。这是我的代码:
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { public void changed(ObservableValue ov, State oldState, State newState) { if (newState == Worker.State.SUCCEEDED) { // note next classes are from org.w3c.dom domain EventListener listener = new EventListener() { public void handleEvent(Event ev) { System.out.println("KLIKNIETO!!!"); } }; Document doc = webEngine.getDocument(); Element el = doc.getElementById("a"); NodeList lista = doc.getElementsByTagName("a"); System.out.println("Liczba elementow: "+ lista.getLength()); for (int i=0; i<lista.getLength(); i++) ((EventTarget)lista.item(i)).addEventListener("click", listener, false); } }});
单击链接后,我现在收到事件。但是,我需要获得对单击链接的引用(以获取其内容)。我该如何实现?
答案1
小编典典加载相关文档后,可以使用w3c dom类在Java中添加单击事件处理程序,以捕获链接单击事件。
请参阅JavaFX WebView中的检测HTML textarea
onkeyup事件中的 Sergey示例。
您还可以使用JavaScript(例如,使用jQuery)捕获事件,这可能比使用w3c
dom api容易一些。
如果您使用JavaScript捕获事件,并且想要反馈事件的通知或从JavaScript到Java的后续处理,则可以使用JavaScript <=>
Java bridge
api。
我已记录了将此功能的示例添加到官方WebView教程的请求。
com.facebook.imagepipeline.listener.RequestLoggingListener的实例源码
@Test public void testCreatingRequestFromExistingRequest() { ImageRequest original = ImageRequestBuilder .newBuilderWithSource(Uri.parse("http://frescolib.org/image.jpg")) .setCacheChoice(ImageRequest.CacheChoice.SMALL) .setimageDecodeOptions(new ImageDecodeOptionsBuilder().build()) .setLocalThumbnailPreviewsEnabled(true) .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.disK_CACHE) .setMediaVariations(MediaVariations.forMediaId("A113")) .setPostprocessor(new BasePostprocessor() { @Override public String getName() { return super.getName(); } }) .setProgressiveRenderingEnabled(true) .setRequestListener(new RequestLoggingListener()) .setResizeOptions(new ResizeOptions(20,20)) .setRotationoptions(Rotationoptions.forceRotation(Rotationoptions.ROTATE_90)) .setRequestPriority(Priority.HIGH) .build(); ImageRequest copy = ImageRequestBuilder.fromrequest(original).build(); assertthat(copy).isEqualTo(original); }
@Test public void testCreatingRequestFromExistingRequest() { ImageRequest original = ImageRequestBuilder .newBuilderWithSource(Uri.parse("http://frescolib.org/image.jpg")) .setCacheChoice(ImageRequest.CacheChoice.SMALL) .setimageDecodeOptions(new ImageDecodeOptionsBuilder().build()) .setLocalThumbnailPreviewsEnabled(true) .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.disK_CACHE) .setMediaVariations(MediaVariations.forMediaId("A113")) .setPostprocessor(new BasePostprocessor() { @Override public String getName() { return super.getName(); } }) .setProgressiveRenderingEnabled(true) .setRequestListener(new RequestLoggingListener()) .setResizeOptions(new ResizeOptions(20,20)) .setRotationoptions(Rotationoptions.forceRotation(Rotationoptions.ROTATE_90)) .setRequestPriority(Priority.HIGH) .build(); ImageRequest copy = ImageRequestBuilder.fromrequest(original).build(); assertthat(copy).isEqualTo(original); }
@Override public void onCreate() { super.onCreate(); FLog.setMinimumLoggingLevel(FLog.VERBOSE); Set<RequestListener> listeners = new HashSet<>(); listeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) .setRequestListeners(listeners) .build(); Fresco.initialize(this,config); }
@Override public void onCreate() { super.onCreate(); FLog.setMinimumLoggingLevel(FLog.VERBOSE); Set<RequestListener> listeners = new HashSet<>(); listeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) .setRequestListeners(listeners) .build(); Fresco.initialize(this,config); }
@Override public void onCreate() { super.onCreate(); FLog.setMinimumLoggingLevel(FLog.VERBOSE); Set<RequestListener> listeners = new HashSet<>(); listeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) .setRequestListeners(listeners) .build(); Fresco.initialize(this,config); }
@Override public void onCreate() { super.onCreate(); Set<RequestListener> requestListeners = new HashSet<>(); requestListeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) // other setters .setRequestListeners(requestListeners) .build(); Fresco.initialize(this,config); FLog.setMinimumLoggingLevel(FLog.VERBOSE); }
private void initialize() { mApplication = this; mContext = this.getApplicationContext(); mResources = this.getResources(); Builder builder = Logcat.newBuilder(); builder.logCatLogLevel(Logcat.SHOW_VERBOSE_LOG); // builder.logCatLogLevel(Logcat.NOT_SHOW_LOG); // Logcat.initialize(this,builder.build()); Logcat.initialize(this); if (IS_DEBUG_ACTIVITYLIFE) { mActivityLifecycle = new MyActivityLifecycle(); this.registeractivityLifecycleCallbacks(mActivityLifecycle); } // Set<RequestListener> requestListeners = new HashSet<>(); requestListeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) // other setters .setRequestListeners(requestListeners) //配置图片磁盘缓存 .setMaindiskCacheConfig(diskCacheConfig.newBuilder(this) .setBaseDirectoryName("image") //父目录下的文件夹名 .setBaseDirectoryPath(StorageUtils.getAppCacheFile(this)) //保存父目录 .build()) .build(); Fresco.initialize(this,config); FLog.setMinimumLoggingLevel(FLog.DEBUG); try { CrashHandler crashHandler = CrashHandler.getInstance(); crashHandler.init(this,Config.CARSH_LOG_PATH); } catch (Exception e) { e.printstacktrace(); } }
/** * 初始化fresco */ private void initFresco() { Set<RequestListener> requestListeners = new HashSet<>(); requestListeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) .setBitmapsConfig(Bitmap.Config.ARGB_8888) .setDownsampleEnabled(true) .setNetworkFetcher(new OkHttpNetworkFetcher(new OkHttpClient())) .setRequestListeners(requestListeners) .build(); Fresco.initialize(this,config); }
private void initFresco() { final ImagePipelineConfig.Builder configBuilder = ImagePipelineConfig.newBuilder(this); File cacheDir = getExternalCacheDir(); if (cacheDir == null) { cacheDir = getCacheDir(); } final diskCacheConfig.Builder maindiskCacheConfigBuilder = diskCacheConfig.newBuilder(this); maindiskCacheConfigBuilder.setBaseDirectoryName("image_cache"); maindiskCacheConfigBuilder.setBaseDirectoryPath(cacheDir); maindiskCacheConfigBuilder.setMaxCacheSize(100 * 1024 * 1024); maindiskCacheConfigBuilder.setVersion(1); configBuilder.setMaindiskCacheConfig(maindiskCacheConfigBuilder.build()); final ImagePipelineConfig.Builder config = ImagePipelineConfig.newBuilder(this); if (BuildConfig.DEBUG) { final Set<RequestListener> requestListeners = new HashSet<>(); requestListeners.add(new RequestLoggingListener()); config.setRequestListeners(requestListeners); FLog.setMinimumLoggingLevel(FLog.VERBOSE); } configBuilder.setMemoryTrimmableRegistry(frescoMemoryTrimmableRegistry); Fresco.initialize(this,config.build()); }
@Override public void onCreate() { super.onCreate(); FLog.setMinimumLoggingLevel(FLog.VERBOSE); Set<RequestListener> listeners = new HashSet<>(); listeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) .setRequestListeners(listeners) .build(); Fresco.initialize(this,config); }
@Override public void onCreate() { super.onCreate(); FLog.setMinimumLoggingLevel(FLog.VERBOSE); Set<RequestListener> listeners = new HashSet<>(); listeners.add(new RequestLoggingListener()); ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) .setRequestListeners(listeners) .build(); Fresco.initialize(this,config); }
private static void configureLoggingListeners(ImagePipelineConfig.Builder configBuilder) { Set<RequestListener> requestListeners = new HashSet<>(); requestListeners.add(new RequestLoggingListener()); configBuilder.setRequestListeners(requestListeners); }
@Override public void onCreate() { super.onCreate(); FLog.setMinimumLoggingLevel(FLog.VERBOSE); Set<RequestListener> listeners = new HashSet<>(); listeners.add(new RequestLoggingListener()); OkHttpClient okHttpClient = new OkHttpClient.Builder() .addNetworkInterceptor(new StethoInterceptor()) .build(); ImagePipelineConfig imagePipelineConfig = OkHttpImagePipelineConfigFactory.newBuilder(this,okHttpClient) .setRequestListeners(listeners) .setProgressiveJpegConfig(new SimpleProgressiveJpegConfig()) .setimagedecoderConfig(CustomImageFormatConfigurator.createimagedecoderConfig(this)) .experiment() .setMediaVariationsIndexEnabled( new supplier<Boolean>() { @Override public Boolean get() { return true; } }) .experiment() .setBitmapPreparetoDraw(true,Integer.MAX_VALUE,true) .experiment() .setSmartResizingEnabled(suppliers.BOOLEAN_TRUE) .build(); ImagePipelineConfig.getDefaultimageRequestConfig().setProgressiveRenderingEnabled(true); DraweeConfig.Builder draweeConfigBuilder = DraweeConfig.newBuilder(); CustomImageFormatConfigurator.addCustomDrawableFactories(this,draweeConfigBuilder); draweeConfigBuilder.setDebugOverlayEnabledsupplier( DebugOverlaysupplierSingleton.getInstance(getApplicationContext())); Fresco.initialize(this,imagePipelineConfig,draweeConfigBuilder.build()); final Context context = this; Stetho.initialize( Stetho.newInitializerBuilder(context) .enableDumpapp( new DumperPluginsprovider() { @Override public Iterable<DumperPlugin> get() { return new Stetho.DefaultDumperPluginsBuilder(context) .provide(new FrescoStethoPlugin()) .finish(); } }) .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(context)) .build()); }
private static void configureLoggingListeners(ImagePipelineConfig.Builder configBuilder) { Set<RequestListener> requestListeners = new HashSet<RequestListener>(); requestListeners.add(new RequestLoggingListener()); configBuilder.setRequestListeners(requestListeners); }
private static void configureLoggingListeners(ImagePipelineConfig.Builder configBuilder) { Set<RequestListener> requestListeners = new HashSet<>(); requestListeners.add(new RequestLoggingListener()); configBuilder.setRequestListeners(requestListeners); }
private static void configureLoggingListeners(ImagePipelineConfig.Builder configBuilder) { Set<RequestListener> requestListeners = new HashSet<>(); requestListeners.add(new RequestLoggingListener()); configBuilder.setRequestListeners(requestListeners); }
@Override public void onCreate() { super.onCreate(); FLog.setMinimumLoggingLevel(FLog.VERBOSE); Set<RequestListener> listeners = new HashSet<>(); listeners.add(new RequestLoggingListener()); OkHttpClient okHttpClient = new OkHttpClient.Builder() .addNetworkInterceptor(new StethoInterceptor()) .build(); ImagePipelineConfig imagePipelineConfig = OkHttpImagePipelineConfigFactory.newBuilder(this,draweeConfigBuilder.build()); final Context context = this; Stetho.initialize( Stetho.newInitializerBuilder(context) .enableDumpapp( new DumperPluginsprovider() { @Override public Iterable<DumperPlugin> get() { return new Stetho.DefaultDumperPluginsBuilder(context) .provide(new FrescoStethoPlugin()) .finish(); } }) .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(context)) .build()); }
com.intellij.ui.BrowserHyperlinkListener的实例源码
private void createuicomponents() { final Font font = UIManager.getFont("Label.font"); final String bodyRule = "body { font-family: " + font.getFamily() + "; " + "font-size: " + font.getSize() + "pt; }"; informationEditorPane = new JEditorPane(); informationEditorPane.setEditorKit(new HTMLEditorKit()); ((HTMLDocument) informationEditorPane.getDocument()).getStyleSheet().addRule(bodyRule); cvsEditorPane = new JEditorPane(); cvsEditorPane.setEditorKit(new HTMLEditorKit()); ((HTMLDocument) cvsEditorPane.getDocument()).getStyleSheet().addRule(bodyRule); jrebelEditorPane = new JEditorPane(); jrebelEditorPane.setEditorKit(new HTMLEditorKit()); ((HTMLDocument) jrebelEditorPane.getDocument()).getStyleSheet().addRule(bodyRule); jiraEditorPane = new JEditorPane(); jiraEditorPane.setEditorKit(new HTMLEditorKit()); ((HTMLDocument) jiraEditorPane.getDocument()).getStyleSheet().addRule(bodyRule); jiraEditorPane.addHyperlinkListener(browserHyperlinkListener.INSTANCE); }
@Override public JComponent createTaskInfoPanel(Project project) { myTaskTextPane = new JTextPane(); final JBScrollPane scrollPane = new JBScrollPane(myTaskTextPane); myTaskTextPane.setContentType(new HTMLEditorKit().getContentType()); final EditorColoRSScheme editorColoRSScheme = EditorColorsManager.getInstance().getGlobalScheme(); int fontSize = editorColoRSScheme.getEditorFontSize(); final String fontName = editorColoRSScheme.getEditorFontName(); final Font font = new Font(fontName,Font.PLAIN,fontSize); String bodyRule = "body { font-family: " + font.getFamily() + "; " + "font-size: " + font.getSize() + "pt; }" + "pre {font-family: Courier; display: inline; ine-height: 50px; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; background-color:" + ColorUtil.toHex(ColorUtil.dimmer(UIUtil.getPanelBackground())) + ";}" + "code {font-family: Courier; display: flex; float: left; background-color:" + ColorUtil.toHex(ColorUtil.dimmer(UIUtil.getPanelBackground())) + ";}"; ((HTMLDocument)myTaskTextPane.getDocument()).getStyleSheet().addRule(bodyRule); myTaskTextPane.setEditable(false); if (!UIUtil.isUnderDarcula()) { myTaskTextPane.setBackground(EditorColorsManager.getInstance().getGlobalScheme().getDefaultBackground()); } myTaskTextPane.setBorder(new EmptyBorder(20,20,10)); myTaskTextPane.addHyperlinkListener(browserHyperlinkListener.INSTANCE); return scrollPane; }
private void createuicomponents() { final Font font = UIManager.getFont("Label.font"); final String bodyRule = "body { font-family: " + font.getFamily() + "; " + "font-size: " + font.getSize() + "pt; }"; discountEditorPane = new JEditorPane(); discountEditorPane.setEditorKit(new HTMLEditorKit()); ((HTMLDocument) discountEditorPane.getDocument()).getStyleSheet().addRule(bodyRule); discountEditorPane.addHyperlinkListener(browserHyperlinkListener.INSTANCE); }
@NotNull public static JTextPane configureMessagePaneUi(JTextPane messageComponent,String message,final boolean addbrowserHyperlinkListener) { messageComponent.setFont(UIUtil.getLabelFont()); if (BasicHTML.isHTMLString(message)) { final HTMLEditorKit editorKit = new HTMLEditorKit(); editorKit.getStyleSheet().addRule(UIUtil.displayPropertiesToCSS(UIUtil.getLabelFont(),UIUtil.getLabelForeground())); messageComponent.setEditorKit(editorKit); messageComponent.setContentType(UIUtil.HTML_MIME); if (addbrowserHyperlinkListener) { messageComponent.addHyperlinkListener(browserHyperlinkListener.INSTANCE); } } messageComponent.setText(message); messageComponent.setEditable(false); if (messageComponent.getCaret() != null) { messageComponent.setCaretPosition(0); } if (UIUtil.isUnderNimbusLookAndFeel()) { messageComponent.setopaque(false); messageComponent.setBackground(UIUtil.TRANSPARENT_COLOR); } else { messageComponent.setBackground(UIUtil.getoptionPaneBackground()); } messageComponent.setForeground(UIUtil.getLabelForeground()); return messageComponent; }
DataPanel(@NotNull Project project,boolean multiRoot,@NotNull disposable disposable) { super(UIUtil.HTML_MIME,""); myProject = project; myMultiRoot = multiRoot; setEditable(false); setopaque(false); putClientProperty(JEditorPane.HOnor_disPLAY_PROPERTIES,Boolean.TRUE); EditorColorsManager.getInstance().addEditorColorsListener(new EditorColorsAdapter() { @Override public void globalSchemeChange(EditorColoRSScheme scheme) { update(); } },disposable); DefaultCaret caret = (DefaultCaret)getCaret(); caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE); addHyperlinkListener(new HyperlinkListener() { public void hyperlinkUpdate(HyperlinkEvent e) { if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED && SHOW_OR_HIDE_BRANCHES.equals(e.getDescription())) { myExpanded = !myExpanded; update(); } else { browserHyperlinkListener.INSTANCE.hyperlinkUpdate(e); } } }); }
private NewChannelPanel() { String message = IdeBundle.message("updates.channel.name.message",myChannel.getName(),myLatestBuild.getMessage()); configureMessageArea(myMessageArea,message,null,browserHyperlinkListener.INSTANCE); if (myLicenseInfo != null) { configureMessageArea(myLicenseArea,myLicenseInfo,browserHyperlinkListener.INSTANCE); } else { myLicenseArea.setVisible(false); } }
private void initCommitMessageArea(final Project project,final Committedchangelist changelist) { myCommitMessageArea = new JEditorPane(UIUtil.HTML_MIME,""); myCommitMessageArea.setBorder(BorderFactory.createEmptyBorder(3,3,3)); myCommitMessageArea.setEditable(false); @NonNls final String text = IssueLinkHtmlRenderer.formatTextIntoHtml(project,changelist.getComment().trim()); myCommitMessageArea.setBackground(UIUtil.getComboBoxdisabledBackground()); myCommitMessageArea.addHyperlinkListener(browserHyperlinkListener.INSTANCE); commitMessageScroll = ScrollPaneFactory.createScrollPane(myCommitMessageArea); myCommitMessageArea.setText(text); myCommitMessageArea.setCaretPosition(0); }
public StudyToolWindow(final Project project) { super(true,true); JPanel toolbarPanel = createtoolbarPanel(); setToolbar(toolbarPanel); final JTextPane taskTextPane = createTaskTextPane(); VirtualFile[] files = FileEditorManager.getInstance(project).getSelectedFiles(); TaskFile taskFile = null; for (VirtualFile file : files) { taskFile = StudyUtils.getTaskFile(project,file); if (taskFile != null) { break; } } if (taskFile == null) { taskTextPane.setText(EMPTY_TASK_TEXT); setContent(taskTextPane); return; } final Task task = taskFile.getTask(); if (task != null) { final String taskText = getTaskText(task,task.getTaskDir(project)); if (taskText == null) { return; } JBScrollPane scrollPane = new JBScrollPane(taskTextPane); taskTextPane.setText(taskText); taskTextPane.addHyperlinkListener(browserHyperlinkListener.INSTANCE); setContent(scrollPane); final FileEditorManagerListener listener = new StudyFileEditorManagerListener(project,taskTextPane); project.getMessageBus().connect().subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER,listener); } }
public static JEditorPane createLatexPane(@NotNull final String source) { final JEditorPane editorPane = new JEditorPane(); editorPane.setBackground(IpnbeditorUtil.getBackground()); editorPane.setContentType(new HTMLEditorKit().getContentType()); editorPane.setEditorKit(new HTMLEditorKit()); final HTMLDocument document = (HTMLDocument)editorPane.getDocument(); final StyleSheet sheet = document.getStyleSheet(); sheet.addRule(ourBodyRule); sheet.addRule(ourCodeRule); sheet.addRule(ourAlertRule); sheet.addRule(ourAlertSuccessRule); sheet.addRule(ourAlertErrorRule); editorPane.setEditable(false); final String html = convertToHtml(source,document); editorPane.setText("<html><body>" + html + "</body></html>"); editorPane.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { final Container parent = editorPane.getParent(); final MouseEvent parentEvent = SwingUtilities.convertMouseEvent(editorPane,e,parent); parent.dispatchEvent(parentEvent); } }); editorPane.addHyperlinkListener(new browserHyperlinkListener()); //Todo: jump to the section (see User Interface#Utilities) return editorPane; }
@NotNull public static JTextPane configureMessagePaneUi(JTextPane messageComponent,final boolean addbrowserHyperlinkListener) { messageComponent.setFont(UIUtil.getLabelFont()); if (BasicHTML.isHTMLString(message)) { final HTMLEditorKit editorKit = new HTMLEditorKit(); editorKit.getStyleSheet().addRule(UIUtil.displayPropertiesToCSS(UIUtil.getLabelFont(),UIUtil.getLabelForeground())); messageComponent.setEditorKit(editorKit); messageComponent.setContentType(UIUtil.HTML_MIME); if (addbrowserHyperlinkListener) { messageComponent.addHyperlinkListener(browserHyperlinkListener.INSTANCE); } } messageComponent.setText(message); messageComponent.setEditable(false); if (messageComponent.getCaret() != null) { messageComponent.setCaretPosition(0); } if (UIUtil.isUnderNimbusLookAndFeel()) { messageComponent.setopaque(false); messageComponent.setBackground(UIUtil.TRANSPARENT_COLOR); } else { messageComponent.setBackground(UIUtil.getoptionPaneBackground()); } messageComponent.setForeground(UIUtil.getLabelForeground()); return messageComponent; }
@Override protected JComponent createCenterPanel() { JEditorPane pane = new JEditorPane(UIUtil.HTML_MIME,myinformationText); pane.addHyperlinkListener(new browserHyperlinkListener()); pane.setEditable(false); pane.setBackground(UIUtil.getLabelBackground()); JBScrollPane scrollPane = new JBScrollPane(pane); scrollPane.setBorder(BorderFactory.createEmptyBorder(0,0)); return scrollPane; }
public UpdateInfoPanel() { ApplicationInfo appInfo = ApplicationInfo.getInstance(); myBuildNumber.setText(appInfo.getBuild().asstringWithoutProductCode() + ")"); final String version = appInfo.getFullVersion(); myVersionNumber.setText(version); myNewBuildNumber.setText(myLatestBuild.getNumber().asstringWithoutProductCode() + ")"); myNewVersionNumber.setText(myLatestBuild.getVersion()); myUpdateMessageLabel.setBackground(UIUtil.getLabelBackground()); myScrollPane.setBackground(UIUtil.getLabelBackground()); myScrollPane.setBorder(BorderFactory.createEmptyBorder(10,0)); if (myLatestBuild.getMessage() != null) { StringBuilder builder = new StringBuilder(); builder.append("<html><head>").append(UIUtil.getCssFontDeclaration(UIUtil.getLabelFont())).append("</head><body>") .append(StringUtil.formatLinks(myLatestBuild.getMessage())) .append("</body></html>"); myUpdateMessageLabel.setText(builder.toString()); myUpdateMessageLabel.addHyperlinkListener(new browserHyperlinkListener()); } else { myUpdateMessageLabel.setVisible(false); } PatchInfo patch = myLatestBuild.findPatchForCurrentBuild(); if (patch == null) { myPatchAvailableLabel.setVisible(false); myPatchSizeLabel.setVisible(false); } else { myPatchSizeLabel.setText(patch.getSize() + "MB"); } if (SystemInfo.isMac) { myManualCheckLabel.setText("<html><br>To check for new updates manually,use the <b>" + ApplicationNamesInfo.getInstance().getProductName() + " | Check for Updates</b> command.</html>"); } LabelTextReplacingUtil.replaceText(myPanel); }
private void initCommitMessageArea(final Project project,changelist.getComment().trim()); myCommitMessageArea.setBackground(UIUtil.getComboBoxdisabledBackground()); myCommitMessageArea.addHyperlinkListener(new browserHyperlinkListener()); commitMessageScroll = ScrollPaneFactory.createScrollPane(myCommitMessageArea); myCommitMessageArea.setText(text); myCommitMessageArea.setCaretPosition(0); }
private void initCommitMessageArea(final Project project,changelist.getComment().trim()); myCommitMessageArea.setBackground(UIUtil.getComboBoxdisabledBackground()); myCommitMessageArea.addHyperlinkListener(browserHyperlinkListener.INSTANCE); commitMessageScroll = ScrollPaneFactory.createScrollPane(myCommitMessageArea); myCommitMessageArea.setText(text); myCommitMessageArea.setCaretPosition(0); }
public UpdateInfoPanel() { ApplicationInfo appInfo = ApplicationInfo.getInstance(); ApplicationNamesInfo appNames = ApplicationNamesInfo.getInstance(); String message = myLatestBuild.getMessage(); final String fullProductName = appNames.getFullProductName(); if (message == null) { message = IdeBundle.message("updates.new.version.available",fullProductName); } final String homePageUrl = myUpdatedChannel.getHomePageUrl(); if (!StringUtil.isEmptyOrSpaces(homePageUrl)) { final int idx = message.indexOf(fullProductName); if (idx >= 0) { message = message.substring(0,idx) + "<a href=\'" + homePageUrl + "\'>" + fullProductName + "</a>" + message.substring(idx + fullProductName.length()); } } configureMessageArea(myUpdateMessage,browserHyperlinkListener.INSTANCE); myCurrentVersion.setText( formatVersion( appInfo.getFullVersion() + (appInfo instanceof ApplicationInfoEx && ((ApplicationInfoEx)appInfo).isEAP() ? " EAP": ""),appInfo.getBuild().asstringWithoutProductCode() ) ); myNewVersion.setText(formatVersion(myLatestBuild.getVersion(),myLatestBuild.getNumber().asstringWithoutProductCode())); if (myPatch != null && !StringUtil.isEmptyOrSpaces(myPatch.getSize())) { myPatchInfo.setText(myPatch.getSize() + " MB"); } else { myPatchLabel.setVisible(false); myPatchInfo.setVisible(false); } if (myWriteProtected) { message = IdeBundle.message("updates.write.protected",appNames.getProductName(),PathManager.getHomePath()); configureMessageArea(myMessageArea,JBColor.RED,null); } else { configureMessageArea(myMessageArea); } if (myLicenseInfo != null) { configureMessageArea(myLicenseArea,myPaidUpgrade ? JBColor.RED : null,null); } }
public static void showDetailsPopup(final Project project,final Committedchangelist changelist) { StringBuilder detailsBuilder = new StringBuilder("<html><head>"); detailsBuilder.append(UIUtil.getCssFontDeclaration(UIUtil.getLabelFont())).append("</head><body>"); final AbstractVcs vcs = changelist.getVcs(); CachingCommittedChangesProvider provider = null; if (vcs != null) { provider = vcs.getCachingCommittedChangesProvider(); if (provider != null && provider.getchangelistTitle() != null) { detailsBuilder.append(provider.getchangelistTitle()).append(" #").append(changelist.getNumber()).append("<br>"); } } @NonNls String committer = "<b>" + changelist.getCommitterName() + "</b>"; detailsBuilder.append(VcsBundle.message("changelist.details.committed.format",committer,DateFormatUtil.formatPrettyDateTime(changelist.getCommitDate()))); detailsBuilder.append("<br>"); if (provider != null) { final Committedchangelist originalchangelist = Receivedchangelist.unwrap(changelist); for(changelistColumn column: provider.getColumns()) { if (changelistColumn.isCustom(column)) { String value = column.getValue(originalchangelist).toString(); if (value.length() == 0) { value = "<none>"; } detailsBuilder.append(column.getTitle()).append(": ").append(XmlStringUtil.escapestring(value)).append("<br>"); } } } detailsBuilder.append(IssueLinkHtmlRenderer.formatTextWithLinks(project,changelist.getComment())); detailsBuilder.append("</body></html>"); JEditorPane editorPane = new JEditorPane(UIUtil.HTML_MIME,detailsBuilder.toString()); editorPane.setEditable(false); editorPane.setBackground(HintUtil.informatION_COLOR); editorPane.select(0,0); editorPane.addHyperlinkListener(browserHyperlinkListener.INSTANCE); JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(editorPane); final JBPopup hint = JBPopupFactory.getInstance().createComponentPopupBuilder(scrollPane,editorPane) .setDimensionServiceKey(project,"changelist.details.popup",false) .setResizable(true) .setMovable(true) .setRequestFocus(true) .setTitle(VcsBundle.message("changelist.details.title")) .createPopup(); hint.showInBestPositionFor(DataManager.getInstance().getDataContext()); }
@Override public final void hyperlinkUpdate(HyperlinkEvent e) { if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { browserHyperlinkListener.INSTANCE.hyperlinkUpdate(e); } }
public static void showDetailsPopup(final Project project,DateFormatUtil.formatPrettyDateTime(changelist.getCommitDate()))); detailsBuilder.append("<br>"); if (provider != null) { final Committedchangelist originalchangelist; if (changelist instanceof Receivedchangelist) { originalchangelist = ((Receivedchangelist) changelist).getBaseList(); } else { originalchangelist = changelist; } for(changelistColumn column: provider.getColumns()) { if (changelistColumn.isCustom(column)) { String value = column.getValue(originalchangelist).toString(); if (value.length() == 0) { value = "<none>"; } detailsBuilder.append(column.getTitle()).append(": ").append(XmlStringUtil.escapestring(value)).append("<br>"); } } } detailsBuilder.append(IssueLinkHtmlRenderer.formatTextWithLinks(project,0); editorPane.addHyperlinkListener(new browserHyperlinkListener()); JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(editorPane); final JBPopup hint = JBPopupFactory.getInstance().createComponentPopupBuilder(scrollPane,false) .setResizable(true) .setMovable(true) .setRequestFocus(true) .setTitle(VcsBundle.message("changelist.details.title")) .createPopup(); hint.showInBestPositionFor(DataManager.getInstance().getDataContext()); }
public GitLogDetailsPanel(final Project myProject,final DetailsCache detailsCache,final Convertor<VirtualFile,CachedRefs> refsProvider,Processor<AbstractHash> markProcessor) { myRefsProvider = refsProvider; myMarkProcessor = markProcessor; myPanel = new JPanel(new cardlayout()); myPanel.add(UIVcsUtil.errorPanel("nothing selected",false),nothing_SELECTED); myPanel.add(UIVcsUtil.errorPanel("Loading...",LOADING); myPanel.add(UIVcsUtil.errorPanel("Several commits selected",MULTIPLE_SELECTED); myHtmlHighlighter = new HtmlHighlighter(); myPresentationData = new MyPresentationData(myProject,detailsCache,myHtmlHighlighter); final JPanel wrapper = new JPanel(new GridBagLayout()); final GridBagConstraints gb = new GridBagConstraints(0,1,GridBagConstraints.norTHWEST,GridBagConstraints.HORIZONTAL,new Insets(1,1),0); myJEditorPane = new JEditorPane(UIUtil.HTML_MIME,""); myJEditorPane.setPreferredSize(new Dimension(150,100)); myJEditorPane.setEditable(false); myJEditorPane.setBackground(UIUtil.getComboBoxdisabledBackground()); myJEditorPane.addHyperlinkListener(new browserHyperlinkListener() { @Override protected void hyperlinkActivated(HyperlinkEvent e) { if (CONfigURE_BRANCHES.equals(e.getDescription())) { if (myRoot == null) return; final CachedRefs symbolicRefs = refsProvider.convert(myRoot); if (symbolicRefs == null) return; final TreeSet<String> localBranches = symbolicRefs.getLocalBranches(); if (localBranches == null || localBranches.isEmpty()) { VcsBalloonProblemNotifier.showOverChangesView(myProject,"Branches is not loaded yet",MessageType.WARNING); return; } final ContainedInBranchesConfigDialog dialog = new ContainedInBranchesConfigDialog(myProject,localBranches,symbolicRefs.getRemoteBranches(),symbolicRefs.getCurrentName(),symbolicRefs.getTrackedRemoteName()); dialog.show(); if (dialog.isChanged()) { //detailsCache.clearBranches(); myPresentationData.branchesPresentation(); changeDetailsText(); } return; } super.hyperlinkActivated(e); } }); myMarksPanel = new JPanel(); final BoxLayout BoxLayout = new BoxLayout(myMarksPanel,BoxLayout.X_AXIS); myMarksPanel.setLayout(BoxLayout); gb.weightx = 1; wrapper.add(myMarksPanel,gb); ++ gb.gridy; gb.weighty = 1; gb.fill = GridBagConstraints.BOTH; final JBScrollPane tableScroll = new JBScrollPane(myJEditorPane); tableScroll.setBorder(null); myJEditorPane.setBorder(null); wrapper.add(tableScroll,gb); myJEditorPane.setBackground(UIUtil.getTableBackground()); myMarksPanel.setBackground(UIUtil.getTableBackground()); wrapper.setBackground(UIUtil.getTableBackground()); myPanel.add(wrapper,DATA); ((cardlayout) myPanel.getLayout()).show(myPanel,nothing_SELECTED); }
public static void showDetailsPopup(final Project project,false) .setResizable(true) .setMovable(true) .setRequestFocus(true) .setTitle(VcsBundle.message("changelist.details.title")) .createPopup(); hint.showInBestPositionFor(DataManager.getInstance().getDataContext()); }
@Override public void hyperlinkUpdate(HyperlinkEvent e) { browserHyperlinkListener.INSTANCE.hyperlinkUpdate(e); }
dom – 附加文本WebEngine – JavaFX
public TabMessage(String title) { super(title); view = new WebView(); engine = view.getEngine(); engine.loadContent("<body></body>"); view.setPrefheight(240); } private void append(String msg){ Document doc = engine.getDocument(); Element el = doc.getElementById("body"); String s = el.getTextContent(); el.setTextContent(s+msg); }
但是文档是空的
解决方法
final WebEngine appendEngine = view.getEngine(); btn.setonAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { appendEngine.executeScript( "document.getElementById('content').appendChild(document.createTextNode('World!'));" ); } });
我有时会发现使用jQuery操作DOM而不是Java Document或本机JavaScript DOM接口更简单.
final WebEngine appendEngine = view.getEngine(); btn.setonAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { executejQuery(appendEngine,"$('#content').append('World!');"); } }); ... private static Object executejQuery(final WebEngine engine,String script) { return engine.executeScript( "(function(window,document,version,callback) { " + "var j,d;" + "var loaded = false;" + "if (!(j = window.jQuery) || version > j.fn.jquery || callback(j,loaded)) {" + " var script = document.createElement(\"script\");" + " script.type = \"text/javascript\";" + " script.src = \"http://code.jquery.com/jquery-1.7.2.min.js\";" + " script.onload = script.onreadystatechange = function() {" + " if (!loaded && (!(d = this.readyState) || d == \"loaded\" || d == \"complete\")) {" + " callback((j = window.jQuery).noConflict(1),loaded = true);" + " j(script).remove();" + " }" + " };" + " document.documentElement.childNodes[0].appendChild(script) " + "} " + "})(window,\"1.7.2\",function($,jquery_loaded) {" + script + "});" ); }
无论您是使用Java文档API,还是使用Uluk,还是JavaScript或JQuery API,Uluk的优秀答案中的所有其他要点仍然适用.
java – Android:在DialogInterface.OnClickListener()中的int是-1
我不明白为什么会这样.我有以下代码:
AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivityNew.this);
builder.setTitle("Title");
builder.setSingleChoiceItems(R.array.example_arrays,1,null);
builder.setNegativeButton("Cancel",null);
builder.setPositiveButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Toast.makeText(SettingsActivityNew.this,"which: " + which,Toast.LENGTH_LONG).show();
}
});
builder.show();
出于一些奇怪的原因,int继续给我-1.为什么会这样?
Parameters
dialog The dialog that received the click.
which The button that was clicked (e.g. BUTTON1) or the position of the item clicked.
BUTTON_POSITIVE:
public static final int BUTTON_POSITIVE
Added in API level 3
The identifier for the positive button.
Constant Value: -1 (0xffffffff)
所以这并不奇怪,但完全正常.你每次得到-1因为你点击对话框的positiveButton
总结
以上是小编为你收集整理的java – Android:在DialogInterface.OnClickListener()中的int是-1全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
我们今天的关于JavaFX WebEngine中的HyperlinkListener和javafxapplication的分享就到这里,谢谢您的阅读,如果想了解更多关于com.facebook.imagepipeline.listener.RequestLoggingListener的实例源码、com.intellij.ui.BrowserHyperlinkListener的实例源码、dom – 附加文本WebEngine – JavaFX、java – Android:在DialogInterface.OnClickListener()中的int是-1的相关信息,可以在本站进行搜索。
本文标签: