我是Java编程的新手,想知道是否有可能在Java GUI应用程序中获得Windows本机外观.显然Swing不起作用.
我需要提交一些任务,然后等待所有结果,直到所有结果都可用.它们中的每一个都添加了Stringa Vector(默认情况下是同步的).然后我需要为Vector中的每个结果启动一个新任务,但是只有当所有先前的任务都停止了它们的工作时我才需要这样做.
我想使用Java Executor,特别是我尝试使用Executors.newFixedThreadPool(100)以便使用固定数量的线程(我有一个可变数量的任务,可以是10或500)但我是执行者的新手,我不知道如何等待任务终止.这就像我的程序需要做的伪代码:
ExecutorService e = Executors.newFixedThreadPool(100);
while(true){
/*do something*/
for(...){
<start task>
}
<wait for all task termination>
for each String in result{
<start task>
}
<wait for all task termination>
}
Run Code Online (Sandbox Code Playgroud)
我不能做e.shutdown,因为我有一段时间(真的),我需要重用executorService...
你能帮助我吗?你能给我一个关于java执行器的指南/书吗?
几乎所有人都知道Java中的字符串是不可变的.最近我发现了一些可能暗示它并不总是正确的东西.我们试试这段代码吧:
System.out.println("-------- BEFORE MODIFICATIONS --------");
String beforeTest = new String("Original");
System.out.println(beforeTest);
java.lang.reflect.Field valueField = String.class.getDeclaredField("value");
valueField.setAccessible(true);
valueField.set("Original", "Modified".toCharArray());
System.out.println("-------- AFTER MODIFICATIONS --------");
System.out.println(beforeTest);
System.out.println("Original");
String test = new String("Original");
System.out.println(test);
String test2 = new String("Original 2");
System.out.println(test2);
Run Code Online (Sandbox Code Playgroud)
输出将是:
-------- BEFORE MODIFICATIONS --------
Original
-------- AFTER MODIFICATIONS --------
Original
Modified
Modified
Original 2
Run Code Online (Sandbox Code Playgroud)
这个技巧如何运作?JVM如何知道应该更改哪些对象以及哪些对象不应该更改?这个伎俩的机制是什么?为什么已经创建的beforeTest字符串没有改变?这个技巧真的会贬低这个strings are immutable原则吗?
我想知道如何在Swing界面中调整Tab顺序.我找到了一个例子,它表明这种方法可以做到这一点,但它似乎已被弃用而且无法正常工作.
getCombox("cmbFrom").setNextFocusableComponent(getCombox("cmbTo"));
Run Code Online (Sandbox Code Playgroud)
注意: - 下面的方法返回带有Argument名称的Combox对象.如果有人知道如何使用Netbeans IDE,它会很棒.我在Eclipse WindowBuilder中找到了一种方法,但在Netbeans IDE中没有.谢谢.
getCombox(String s)
Run Code Online (Sandbox Code Playgroud) 我有一个ArrayList,其中包含具有属性名称和时间的对象.我想根据名称删除重复项,并保留最新时间的记录.所以我在我的对象中使用覆盖equals和hashcode名称,并使用这样的代码.
private List<ChangedRecentlyTO> groupRecords(List<ChangedRecentlyTO> toList) {
changedRecentlyList.clear(); //static list
for(ChangedRecentlyTO to : toList) {
if(!changedRecentlyList.contains(to)) {
changedRecentlyList.add(to);
} else {
if(changedRecentlyList.get(changedRecentlyList.lastIndexOf(to)).getTimeChanged().before(to.getTimeChanged())) {
changedRecentlyList.remove(to);
changedRecentlyList.add(to);
}
}
}
return changedRecentlyList;
}
Run Code Online (Sandbox Code Playgroud)
但我想知道,有没有更好的解决方案?我正在考虑使用Set,但我无法弄清楚我应该如何制定时间标准.
我正在编写一个程序,可以响应用户说的内容,比如聊天机器人.但是我想知道如果两个或更多的单词具有相同的含义,我是否可以理解它.
例如,当用户说"你害怕黑暗吗?"时,我会回答"是".但"害怕","害怕"和"受惊"具有相同的含义.如果用户使用"害怕"而不是"害怕"程序如何识别这两个词具有相同的含义,那么请参考"你害怕黑暗吗?" 问答"是"?
我不知道如果我可以做字符串数组像{"hello", "hi", "hey"}或{"afraid", "scared", "frightened"}等感谢您的帮助.
PS:我写的程序不使用英语,我担心我不能使用库或API,但我自己定义同义词列表没有问题.
我们已经建立了销售点系统,现在我们需要将其实施到触摸屏?我们是否需要依次更改任何代码才能使其正常工作.
我们正在使用键盘输入值 - 比方说数量 - 当我专注于JTextField时,是否有一种java方式弹出键盘(如android)?
我发现很难清楚JFormattedTextFields 的价值.怎么做?
我试过了
txtJFormattedTextField.setText("");
Run Code Online (Sandbox Code Playgroud)
但是当焦点再次失去时,我清除的价值就会出现.我阅读了有关此问题的API.
我为日期字段创建JTFormattedTextFields的工厂如下 -
public static JFormattedTextField createDateField() {
MaskFormatter maskFormatter = null;
try {
maskFormatter = new MaskFormatter("##/##/####");
} catch (ParseException e) {
e.printStackTrace();
}
JFormattedTextField formattedTextField = new JFormattedTextField(
maskFormatter);
SwingHelper.installDateValidation((AbstractDocument) formattedTextField
.getDocument());
formattedTextField.setColumns(10);
return formattedTextField;
}
Run Code Online (Sandbox Code Playgroud)
试过了
try {
((JFormattedTextField) txtSigninDate).commitEdit();
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
结果是一个例外 - 下面是异常跟踪.
java.text.ParseException: stringToValue passed invalid value
at javax.swing.text.MaskFormatter.stringToValue(MaskFormatter.java:456)
at javax.swing.text.MaskFormatter.stringToValue(MaskFormatter.java:371)
at javax.swing.JFormattedTextField.commitEdit(JFormattedTextField.java:530)
at app.view.action.Authentication_Action.clearSigninFields(Authentication_Action.java:207)
at app.view.action.authentication.AuthenticationCommand.decorateSignout(AuthenticationCommand.java:285)
at app.view.action.authentication.AuthenticationCommand.executeSignin(AuthenticationCommand.java:122)
at app.view.action.Authentication_Action$2.actionPerformed(Authentication_Action.java:292)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
Run Code Online (Sandbox Code Playgroud) 我已经阅读了有关OAuth 2.0和隐式授权类型的教程.我仍然不明白隐式授权类型如何适用于移动设备(iOS或Android).例如,如果我们创建一个SSO应用程序(如Facebook)并制作SDK来提供此服务.SSO应用程序是否以实用方式或通过Web视图与授权服务器联系?
另外一点是 - 隐式授权类型要求您发送重定向URI.我知道您可以为iOS制作自定义uri架构并执行此操作.我不明白的是授权服务器如何在设备上调用自定义URI.
我想在bootstrap-table中添加一个列的链接.这该怎么做?
java ×8
swing ×4
string ×2
android ×1
arrays ×1
chatbot ×1
collections ×1
concurrency ×1
ios ×1
iphone ×1
list ×1
oauth-2.0 ×1
reflection ×1
synonym ×1
touchscreen ×1
unique ×1
windows ×1