问题列表 - 第49971页

突出显示JTextPane中的当前行

我正在尝试超过2天来实现文本编辑器窗口的特定要求...不幸的是到目前为止没有成功:(

目标是获得一个文本编辑器窗口,该窗口将突出显示当前行,就像其他文本编辑器一样.对于当前行,我指的是当前光标/插入符所在的行.

我已经找到了两种不同的方法,但不幸的是我无法采用它们,所以它们按预期工作.

第一种方法是覆盖DefaultHighlighter(http://snippets.dzone.com/posts/show/6688).在第二种方法中,HighlighterPainter将被覆盖(http://www.jroller.com/santhosh/date/20050622).

现在我正在尝试在我的项目中采用第一种方法,但正如我所说,它没有按预期工作.

在这篇文章的最后,我发布了一个小样本应用程序来演示这个问题.

  • 如果我启动程序,则将插入符号放在第一行的开头.但是,该行未突出显示.
  • 现在我输入一些字符.这些字符将突出显示,但只有那些字符不完整
  • 我点击Enter进入下一行.第一行不再突出显示正确的内容.第二行也没有突出显示,这是不正确的.再次,当我键入一些字符时,那些将是高亮显示但不是完整的行.
  • 当我现在将插入符号移回第一行时,通过向上键或鼠标单击,将突出显示完整的第一行,而不仅仅是现有的字符.这是我从一开始就想要的行为.

我希望有人能告诉我这里我做错了什么......或者解释为什么根本无法解决这个问题.如何实现线条突出显示的任何替代解决方案也非常感谢!

非常感谢Cheers Preachie

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;

import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;

public class HighlightProblem extends JFrame {
    private static final long serialVersionUID = 1L;
    private final JTextPane textPane;
    private final Highlighter.HighlightPainter cyanPainter;

    public HighlightProblem() {
        cyanPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.CYAN);

        textPane = new JTextPane();
        textPane.setPreferredSize(new …
Run Code Online (Sandbox Code Playgroud)

java swing highlighting jtextpane

9
推荐指数
1
解决办法
5664
查看次数

使用python正则表达式计算文档中单词的频率

创建了一个python模块,它读取文件,删除停用词并输出一个python字典,其中包含单词及其频率(文档中出现的次数).

def run():
filelist = os.listdir(path)
regex = re.compile(r'.*<div class="body">(.*?)</div>.*', re.DOTALL | re.IGNORECASE)
reg1 = re.compile(r'<\/?[ap][^>]*>', re.DOTALL | re.IGNORECASE)
quotereg = re.compile(r'&quot;', re.DOTALL | re.IGNORECASE)
puncreg = re.compile(r'[^\w]', re.DOTALL | re.IGNORECASE)
f = open(stopwordfile, 'r')
stopwords = f.read().lower().split()
totalfreq = {}

filewords = {}
htmlfiles = []
for file in filelist:
    if file[-5:] == '.html':
        htmlfiles.append(file)

for file in htmlfiles:
    f = open(path + file, 'r')
    words = f.read().lower()
    words = regex.findall(words)[0]
    words = quotereg.sub(' ', words)
    words = reg1.sub(' …
Run Code Online (Sandbox Code Playgroud)

python regex dictionary frequency count

5
推荐指数
1
解决办法
3337
查看次数

Portlet、HttpSession 和线程安全

我们的 portlet 将状态保存在 HttpSession 中,它由同一会话的所有请求处理线程共享。

portlet 规范 (JSR-168) 写道:

PLT.5.2.4.3 请求处理期间的多线程问题

portlet 容器通过在不同线程上并发执行请求处理方法来处理对同一 portlet 的并发请求。Portlet 开发人员必须将他们的 Portlet 设计为在任何特定时间处理来自processActionrender方法内的多个线程的并发执行 。

我想知道我应该如何实现这一目标?当然,我可以在processAction和期间使用同步来实现互斥render,但我不知道如何从整体上强制执行请求处理的原子性。我特别担心以下情况:

  • 线程 1 执行processAction,将数据加载到会话中以供稍后呈现
  • 线程 2 执行processAction,从会话中丢弃该数据
  • 线程 1 执行render,从会话中读取要渲染的数据,并抛出 NullPointerException 因为准备好的数据不再存在......

通常如何防止这种情况?特别是,当使用 JBoss portlet 桥使 JSF 适应 Portlet 环境时?

java jsf multithreading portlet session-state

5
推荐指数
1
解决办法
1265
查看次数

htacces重写tld而不改变子域或dirs

我正在尝试重写以下网址:

子域应匹配任何子域.同样适用于TLD.两者:http://car.example.com/http://cat.example.co.uk都应该重写

http://subdomain.example.com/some/dir 访问 http://subdomain.example.nl/some/dir

http://example.com/some/dirhttp://exampkle.nl/some/dir

(也有www.地址)

但是我对htaccess和重写规则的了解一般都不够好:(

我希望你们中的一个人知道解决方案.

PS.我确实尝试过搜索;)

apache .htaccess

5
推荐指数
1
解决办法
2918
查看次数

如何使用命令行回收远程计算机上的应用程序池

我在尝试从命令行运行的 vbs 文件中有以下内容:

strServerName = "ServerName"
strAppPoolName = "DefaultAppPool"
set objAppPools = GetObject("IIS://" & strServerName 
                                  & "/w3svc/AppPools/" & strAppPoolName & "")
objAppPools.Recycle()
Run Code Online (Sandbox Code Playgroud)

然而,当我从 cmd 行运行 vbs 时,我收到以下错误:

Microsoft VBScript 运行时错误:ActiveX 组件无法创建对象:“获取对象”_

我在本地机器上运行 XP,远程机器有 IIS 7。

我怎样才能让它发挥作用?

c# windows vbscript iis-7 application-pool

4
推荐指数
2
解决办法
2万
查看次数

Java varargs方法参数列表与数组

可变参数:

public static void foo(String... string_array) { ... }
Run Code Online (Sandbox Code Playgroud)

单阵列参数:

public static void bar(String[] string_array) { ... }
Run Code Online (Sandbox Code Playgroud)

Java 1.6似乎接受/拒绝以下内容:

String[] arr = {"abc", "def", "ghi"};
foo(arr);  // accept
bar(arr);  // accept
foo("abc", "def", "ghi");  // accept
bar("abc", "def", "ghi");  // reject
Run Code Online (Sandbox Code Playgroud)

假设上述是真的/正确的,为什么不总是使用varargs而不是单个数组param?似乎免费增加了一点来电灵活性.

专家是否可以共享内部JVM差异(如果有)?

谢谢.

java variadic-functions

37
推荐指数
3
解决办法
3万
查看次数

asp.net从前端调用方法

我有一个方法在我的后端,我想从我的前端打电话,但似乎无法让它工作.这是我的代码:

<% foreach(string item in Plants){ %>

    <li>
        <span class="folder">
            <asp:label ID="lblPlantName" runat="server" Text='<% GetPlantName(item) %>'></asp:label>
        </span>
    </li>

<%} %>
Run Code Online (Sandbox Code Playgroud)

getplantName方法应返回一个字符串并填入文本.但由于某种原因,这不会被调用.

任何人有任何想法或建议吗?

c# asp.net

4
推荐指数
2
解决办法
7538
查看次数

将时间戳转换为较短的字母数字表示的良好算法

什么是采取包含年,月,日,时,分,秒时间戳好的算法,并将其转换为七位数或更小(但一致的)字母数字表示.字母数字表示不区分大写和小写字母.

algorithm

4
推荐指数
1
解决办法
9100
查看次数

帮助理解Windows内存 - "工作集"

我一直在追踪我的应用程序中的一些内存泄漏.这是一个真正的痛苦,但我终于收紧了一切.但是,有一点Windows内存管理令我感到困惑.以下是应用程序内存使用情况的打印输出...

Time        PrivateMemorySize64        WorkingSet64
20:00:36    47480,                     50144
20:01:06    47480,                     50144
20:01:36    47480,                     50144
20:02:06    47480,                     149540
20:02:36    47480,                     149540
20:03:06    47480,                     149540
Run Code Online (Sandbox Code Playgroud)

工作装置在30秒的时间内从49 MB跳到146.这种情况在一夜之间发生,因为应用程序基本上什

该工作组(这是任务管理器显示我)似乎是能够被其他应用程序,如调试器的影响(因为我学会了在寻找内存泄漏).在阅读了有关工作集的文档后,我仍然没有很好的理解.

任何帮助表示赞赏.

更新:感谢响应者的一些链接以及一些额外的搜索,我更好地了解了一个单独的流程如何导致我的流程的工作集增长.很高兴知道工作集中的峰值并不一定表明你的应用程序正在泄漏...还有理由不依赖任务管理器进行内存评估:)

有用的网址:

关于内存使用情况的几句话:工作集与私人工作集

Cyber​​Notes:Windows内存使用说明

memory windows

9
推荐指数
1
解决办法
2万
查看次数

Cassandra UnavailableException()

线程"main"中的异常UnavailableException()

在org.apache.cassandra.thrift.Cassandra $ batch_mutate_result.read(Cassandra.java:16485)在org.apache.cassandra.thrift.Cassandra $ Client.recv_batch_mutate(Cassandra.java:916)在org.apache.cassandra.thrift .Cassandra $ Client.batch_mutate(Cassandra.java:890)在WordCountSetup.main(未知来源)

嗨,我在cassandra工作时遇到了这个错误.任何人都可以帮我如何获取这些类文件.提前致谢..

cassandra

6
推荐指数
1
解决办法
4174
查看次数