实现java.awt.event.ActionListener界面的最佳方法是什么?
让您的类实现ActionListener并将其添加为ActionListener:
class Foo implements ActionListener{
public Foo() {
JButton button = new JButton();
button.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
}
}
Run Code Online (Sandbox Code Playgroud)
或者添加匿名ActionListener类的对象:
class Foo{
public Foo() {
JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一种算法来识别图中两个节点之间的所有可能路径,如下例所示:
.
实际上,我只需要知道哪些节点出现在所有现有路径中.
在网上只有关于DFS,A*或dijkstra的参考,但我认为它们在这种情况下不起作用.
有谁知道如何解决它?
我想编写一个方法,返回按字段'serviceId'分组的最后添加的对象列表.
以下HQL有效,但我想使用Criteria API编写它:
FROM Notification WHERE date IN
(SELECT MAX(date) FROM Notification GROUP BY serviceId)
ORDER BY date ASC
Run Code Online (Sandbox Code Playgroud)
像这样的东西:
Criteria crit = session.createCriteria(Notification.class);
crit.add(Restrictions.in("date", <MAX dates>));
criteria.addOrder(Order.desc("date"));
Run Code Online (Sandbox Code Playgroud)
提前致谢.
编辑:
现在我需要一个类似的查询,使用eclipselink API =/
基本上,我需要最后N行(最大日期),其状态是下面描述的五个之一,按serviceId列分组.
由于我的经验不足,这是我能做到的最好的:
ExpressionBuilder builder = new ExpressionBuilder();
Expression exStatus1 = builder.get("status").equal(MessageType.START.toString());
Expression exStatus2 = builder.get("status").equal(MessageType.RUNNING.toString());
Expression exStatus3 = builder.get("status").equal(MessageType.PAUSED.toString());
Expression exStatus4 = builder.get("status").equal(MessageType.END_ERROR.toString());
Expression exStatus5 = builder.get("status").equal(MessageType.END_SUCCESS.toString());
ReadAllQuery query = new ReadAllQuery();
query.setReferenceClass(Notification.class);
query.setSelectionCriteria(((exStatus1).or(exStatus2).or(exStatus3).or(exStatus4).or(exStatus5)));
query.setMaxRows(listSize);
query.addDescendingOrdering("date");
Run Code Online (Sandbox Code Playgroud)
避免结果行中重复serviceIds的子句...
我正在尝试将这个SQL命令与Ormlite一起使用:
select address from receive
Run Code Online (Sandbox Code Playgroud)
使用此代码:
List<Receivers> receiver_address = receiverDao.queryBuilder().selectColumns("address").query();
Run Code Online (Sandbox Code Playgroud)
但返回的对象是:
1 = {Receivers@830028192208}
address = {String@830028192264} "my new address"
city = null
email = null
telephone = null
mobile = null
name_family = null
national_code = null
postal_code = null
receiver_name = null
id = 2
Run Code Online (Sandbox Code Playgroud)
我只需要address此查询中的字段,而不是iterator:
List<String> list = new ArrayList<String>();
for( Receivers lst:receiver_address)
list.add(lst.getAddress());
Run Code Online (Sandbox Code Playgroud)
怎么做这个动作?
尝试访问安全的外部服务时出现此错误:
TID: [0] [ESB] [2016-01-07 11:08:52,310] ERROR - I/O error: General SSLEngine problem {org.apache.synapse.transport.passthru.TargetHandler}
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1364)
at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:513)
at sun.security.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1197)
at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1169)
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:469)
at org.apache.http.impl.nio.reactor.SSLIOSession.doHandshake(SSLIOSession.java:154)
at org.apache.http.impl.nio.reactor.SSLIOSession.isAppInputReady(SSLIOSession.java:273)
at org.apache.http.impl.nio.ssl.SSLClientIOEventDispatch.inputReady(SSLClientIOEventDispatch.java:241)
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:158)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:340)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:318)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:278)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:542)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1703)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:278)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1338)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:808)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:806)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1301)
at org.apache.http.impl.nio.reactor.SSLIOSession.doHandshake(SSLIOSession.java:171)
... …Run Code Online (Sandbox Code Playgroud) 我正在创建一个 Java 应用程序,应用程序将在其中打印图片和旁边的一些文本。我在打印时有两台打印机,我会相应地选择。我不会为用户显示打印对话框来选择打印机和其他东西。我的代码如下
PrinterJob job = PrinterJob.getPrinterJob();
boolean ok = job.printDialog();
Run Code Online (Sandbox Code Playgroud)
如果我不跳过该行boolean ok = job.printDialog();,文本将在我的案例 (20,20) 中提到的位置打印,但如果我跳过该行,我的打印可能会在打印机上更远的点完成 (120, 120) 这意味着我需要一个保证金设置。并给我一个设置打印机的代码。
我是春天和休息的新人.我写了这样一个简单的休息:
@RequestMapping(value = "/loginTest", method = RequestMethod.POST)
@ResponseBody
public Response loginTest(@RequestBody LoginRequest request) {
System.out.println("enter loginTest.");
String account = request.getAccount();
String password = request.getPassword();
Response res = new Response();
return res;
}
Run Code Online (Sandbox Code Playgroud)
LoginRequest是这样的:
public class LoginRequest {
private String account;
private String password;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Run Code Online (Sandbox Code Playgroud)
当我通过命令测试时:
curl -X POST …Run Code Online (Sandbox Code Playgroud) 我正在编写一个java代码,用于连接和执行基于telnet的设备中的命令.当我登录时,会出现如下消息:
Trying 10.11.115.160...
Connected to 10.11.115.160.
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)
问题是,当我想要注销时,不知道如何使用简单的字符串来写这个字符'^'',如下所示:
telnetClient.execute("^]");
Run Code Online (Sandbox Code Playgroud)
要么
telnetClient.execute("\uXXXX");
Run Code Online (Sandbox Code Playgroud)
在linux终端中,它使用ctrl +].我没有在unicode表中找到这个char.
有人知道吗?提前致谢
我从来没有对正则表达式很好,我似乎无法得到这个......
我试图匹配这些行的语句(这些是我正在阅读的文本文件中的两行)
Lname Fname 12.35 1
Jones Bananaman 7.1 3
Run Code Online (Sandbox Code Playgroud)
目前我正在使用这个语句
reader.hasNext("\\w+ \\w+ \\d*\\.\\d{1,2} [0-5]")
Run Code Online (Sandbox Code Playgroud)
但它没有进入while语句.当我删除while时,程序读取文本文件就好了.代码段是这样的:
private void initializeFileData(){
try {
Scanner reader = new Scanner(openedPath);
while(reader.hasNext("\\w+ \\w+ \\d*\\.\\d{1,2} [0-5]")){
employeeInfo.add(new EmployeeFile(reader.next(), reader.next(), reader.nextDouble(), reader.nextInt(), new employeeRemove()));
}
for(EmployeeFile element: employeeInfo){
output.add(element);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud) 我目前正在为课堂编写这个编码问题.
给定n不同值的排序数组以及目标值T,O(n)及时确定数组中是否存在两个不同的值T.(例如,如果阵列包含3,5,6,7,和9和T = 14,那么你写应该返回方法true,因为5+9 = 14,它应该返回false为值相同的数组,如果T = 17.)
所以,最初,我刚用嵌套线性搜索方法编写问题,这显然导致O(n^2)运行时建立基线以简化,但是,到目前为止,我只能将其简化为O(n log(n)).我这样做是通过创建一个由差异构成的Target - array[i]新数组,然后使用嵌套在线性上升到新数组的循环中的二进制搜索将新数组与原始数组进行比较.
我不是要求答案,而是提示在哪里寻找简化我的代码.我觉得这个数组排序的事实很重要,O(n)但不知道如何去做.
谢谢你的时间!