小编Cha*_*han的帖子

如何在Java GUI编程中获得windows native?

我是Java编程的新手,想知道是否有可能在Java GUI应用程序中获得Windows本机外观.显然Swing不起作用.

java windows user-interface swing

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

Java执行程序:等待任务终止.

我需要提交一些任务,然后等待所有结果,直到所有结果都可用.它们中的每一个都添加了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 concurrency multithreading executorservice

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

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原则吗?

java string reflection

12
推荐指数
1
解决办法
3805
查看次数

如何在Swing Java中设置Tab顺序?

我想知道如何在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)

java swing

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

制作一个独特的Java对象列表

我有一个ArrayList,其中包含具有属性名称和时间的对象.我想根据名称删除重复项,并保留最新时间的记录.所以我在我的对象中使用覆盖equalshashcode名称,并使用这样的代码.

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,但我无法弄清楚我应该如何制定时间标准.

java collections list unique

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

如何在Java中存储和检查字符串的同义词

我正在编写一个程序,可以响应用户说的内容,比如聊天机器人.但是我想知道如果两个或更多的单词具有相同的含义,我是否可以理解它.

例如,当用户说"你害怕黑暗吗?"时,我会回答"是".但"害怕","害怕"和"受惊"具有相同的含义.如果用户使用"害怕"而不是"害怕"程序如何识别这两个词具有相同的含义,那么请参考"你害怕黑暗吗?" 问答"是"?

我不知道如果我可以做字符串数组像{"hello", "hi", "hey"}{"afraid", "scared", "frightened"}等感谢您的帮助.

PS:我写的程序不使用英语,我担心我不能使用库或API,但我自己定义同义词列表没有问题.

java arrays string synonym chatbot

7
推荐指数
1
解决办法
2341
查看次数

如何将Java Swing应用程序实现到触摸屏

我们已经建立了销售点系统,现在我们需要将其实施到触摸屏?我们是否需要依次更改任何代码才能使其正常工作.

我们正在使用键盘输入值 - 比方说数量 - 当我专注于JTextField时,是否有一种java方式弹出键盘(如android)?

java swing touchscreen on-screen-keyboard

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

JFormattedTextField中未清除的值

我发现很难清楚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)

java swing jformattedtextfield

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

如何在OAuth 2.0中为移动应用程序使用隐式授权类型?

我已经阅读了有关OAuth 2.0和隐式授权类型的教程.我仍然不明白隐式授权类型如何适用于移动设备(iOS或Android).例如,如果我们创建一个SSO应用程序(如Facebook)并制作SDK来提供此服务.SSO应用程序是否以实用方式或通过Web视图与授权服务器联系?

另外一点是 - 隐式授权类型要求您发送重定向URI.我知道您可以为iOS制作自定义uri架构并执行此操作.我不明白的是授权服务器如何在设备上调用自定义URI.

iphone android ios oauth-2.0

5
推荐指数
2
解决办法
2308
查看次数

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