所以我创建了自己的文本窗格类(扩展JTextPane),我正在使用下面的方法向其中添加文本.但是,窗格需要可以编辑才能添加文本,但这允许用户也可以编辑窗格中的内容.
任何人都可以告诉我如何在不让用户操纵那些内容的情况下向窗格添加文本?
public void appendColor(Color c, String s) {
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c);
int len = getDocument().getLength();
setCaretPosition(len);
setCharacterAttributes(aset, false);
replaceSelection(s);
setCaretPosition(getDocument().getLength());
}
Run Code Online (Sandbox Code Playgroud) 您好我会尽力解释一下.
基本上,我使用Assembly.LoadFile通过反射加载库.
从那里我有一个接口IFace,它定义了一个返回字符串数组的方法"GetStrings".
动态加载的DLL有一个名为"Class1"的类,它实现了IFace.
我需要一种通过动态加载的lib调用这个interfaced方法的方法.我想保持紧密耦合,这让我想知道该怎么做.我知道我可以使用MethodInvoker来调用该方法,但我正在尝试找到一种方法,我可以做这样的事情:
IFace obj = (IFace)ReflectionAssembly.Class1;
string[] strs = obj.GetStrings();
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在使用PMD规则测试一些Java代码.效率的一个规则是'AddingEmptyString'.以下是该规则的说明.
查找正在添加的空字符串文字.这是将任何类型转换为String的低效方法.
String s = "" + 123; // bad
String t = Integer.toString(456); // ok
Run Code Online (Sandbox Code Playgroud)
你能解释为什么Integer.toString比将空字符串添加到整数类型值更好吗?
通过一些apache日志,我已经多次遇到以下模式(URL解码):
GET /foo.php?id=1 and union select 0x5E5B7D7E,0x5E5B7D7E,0x5E5B7D7E,... --
Run Code Online (Sandbox Code Playgroud)
显然这是一次SQL注入尝试.但为什么上面显示的常数?我看不出它有多么特别重要,尽管看起来很频繁.
对于它的价值,上面的常量映射到以下ASCII字符:" ^[}~
"或" ~}[^
",如果你颠倒字节顺序.十进制的值是1,583,054,206
八进制的013626676576
.代码似乎没有映射到有用的x86指令序列.
谷歌搜索这个数字只是揭示了在其他网站上使用相同的SQL注入攻击的尝试的残余 - 没有关于攻击本身的信息.
有人有任何见解吗?
我不知道为什么我不能在这里使用MultivaluedMap,有人可以提供帮助.Eclipse告诉我它无法解析为一个类型
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
import javax.net.ssl.SSLContext;
import com.sun.jersey.api.client.*;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.api.client.filter.Filterable;
import com.sun.jersey.core.util.MultivaluedMapImpl;
public class Main {
public static void main(String[] args) throws Exception {
Client client = Client.create();
WebResource webResource = client.resource("http://api.foursquare.com/v1/venues");
MultivaluedMap queryParams = new MultivaluedMapImpl();
queryParams.add("geolat", "51.543724");
queryParams.add("geolong", "-.102365");
String s = webResource.queryParams(queryParams).get(String.class);
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么其他的东西
我正在使用mail()发送简单的邮件.为方便起见,我使用标题来设置"发件人"地址.我想知道,我可以把那里的任何一个地址都假装成任何人; 我只是为了好奇而努力,实际上它有效!这是正常的吗?这是使用邮件功能的正确方法吗?有没有办法识别这些邮件的发件人的身份?
编辑:我使用我的Gmail地址作为邮件()标题中的"发件人"向我自己发送了一封邮件.我收到了带有这些标题的消息:
…
Received: from smarty.dreamhost.com (smarty.dreamhost.com [208.113.175.8]) by mx.google.com with ESMTP id w21si2197938ybh.68.2010.10.19.19.33.30; Tue, 19 Oct 2010 19:33:30 -0700 (PDT)
Received: from nationals.dreamhost.com (nationals.dreamhost.com [69.163.165.6]) by smarty.dreamhost.com (Postfix) with ESMTP id EB56D6E804A for <myMail@gmail.com>; Tue, 19 Oct 2010 19:33:29 -0700 (PDT)
Received: by nationals.dreamhost.com (Postfix, from userid 3598506) id E4BB635C83F; Tue, 19 Oct 2010 19:33:29 -0700 (PDT)
Return-Path: <mySite@nationals.dreamhost.com>
Received-Spf: pass (google.com: domain of mySite@nationals.dreamhost.com designates 208.113.175.8 as permitted sender) client-ip=208.113.175.8;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of mySite@nationals.dreamhost.com …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个具有附加要求的优先级队列,一个查找/搜索功能,它将告诉一个项目是否在队列中的任何位置.所以函数将是:insert,del-min和find.
我不确定是否应该使用Heap或Self-balancing二进制搜索树.看来PQ通常用Heap实现,但我想知道使用二叉搜索树是否有任何优势,因为我还需要find函数.
此外,平均而言,我会做更多的插入而不是删除.我也在考虑一个d-ary堆.基本上,每一秒都很重要.
谢谢!
System.Windows.Forms.dll位于文件夹C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727中.我想下载最新的System.Windows.Forms.dll来替换我机器上的旧版本.有谁知道我可以在哪里下载它?
我想知道如何使用PHP在文本输入上只允许五(5)个单词.
我知道我可以使用该strlen
函数进行字符计数,但我想知道如何才能为单词计数.
如果是这样,请解释如何.
Re:什么是距离 - "两个字符串之间的距离定义为将一个字符串转换为另一个字符串所需的最小编辑数."
例如,xyz到XYZ将进行3次编辑,因此字符串xYZ更接近XYZ和xyz.
如果模式是[0-9] {3}或例如123,那么a23将比ab3更接近模式.
如何找到正则表达式与非匹配字符串之间的最短距离?
以上是Damerau-Levenshtein距离算法.