invokeLater vs invokeAndWait with JTextArea

我有一个在多个线程上运行的Swing应用程序,我在EDT上创建了Swing组件。 Executor启动线程,在某些时候将文本插入JTextArea。 但是,与InvokeAndWait不同,InvokeLater并不总是执行追加。 当我收集它时,它是异步的,非阻塞的,但仍然应该进行追加。 怎么会这样? 谢谢

如何阅读简单的xpm图像并使用Java显示它?

我被分配了一个任务来构建一个简单的xpm图像查看器。 我不能使用任何现有的工具包库。 我知道xpm图像是这样的字符串数组(我可以写一个) – /* XPM */ static const char *const hi[] = { “7 5 2 1″, ” c black”, “. c yellow”, “.. ..”, “. . . .”, “. . .”, “. .”, “. .” }; 我想用java来做这件事。 我的问题是 – 1.如何从这个xpm文件中创建一个String变量(hi []),以便我可以在我的主类中使用它? 2.在GUI中显示它的好方法? 3.任何其他口述…… 非常感谢您的帮助

如何在tomcat 8中正确配置jndi数据源

我尝试在我的应用程序中配置jsbc数据源 -tomcat_home- \的conf \卡塔利娜\本地主机 我的应用程序是“reportExport”.war所以我用这个内容创建了reportExport.xml: 我在web.xml中添加了这个: This app requires a ms sql connection. jdbc/mssql javax.sql.DataSource Container 可能我可以省略我在reportExport.xml中给出的字段?! 在Java中我尝试获得这样的连接: ((DataSource) (new InitialContext()).lookup(“java:comp/env/jdbc/mssql”)).getConnection() 连接在java中工作,但有2个问题。 第一个问题是:如果我在部署应用程序之前将reportExport.xml放入正确的路径tomcat抛出exception: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].Sta ndardContext[/reportExport]] … Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\moritz\entwicklung\apache-tomca t-8.0.18\webapps\reportExport] is not valid … 11-Feb-2015 14:15:38.303 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Error de ploying configuration descriptor […]

将自定义AuthenticationProcessingFilter与一起使用(auto-config =“true”)

Spring security(2.0.x)http命名空间,表单登录定义自动使用AuthenticationProcessingFilter。 我也知道如果我设置auto-config=”false”我可以通过提供自定义bean定义来自定义身份validation。 我有CustomAuthenticationProcessingFilter扩展AuthenticationProcessingFilter覆盖acquireUsername并使用自定义逻辑来获取用户名而不是传递的用户名。 protected String obtainUsername(HttpServletRequest request) { // custom logic to return username from parameter/cookies/header etc … } 是否可以使用CustomAuthenticationProcessingFilter,同时仍然使用auto-config=”true” 而无需定义customAuthFilter和所有依赖bean? … …

最长的子序列,动态编程

我有以下问题: 找到给定序列/数组的增长最长的子序列。 换句话说,找到数组的子序列,其中子序列的元素严格按顺序递增,并且子序列尽可能长。 该子序列不一定是连续的或唯一的。 在这种情况下,我们只关心最长的增长子序列的长度。 示例: 输入:[0,8,4,12,2,10,6,14,1,9,5,13,​​3,11,7,15]输出:6序列:[0,2,6,9, 13,15]或[0,4,6,9,11,15]或[0,4,6,9,13,15] 这是一个DP问题,我在记忆步骤中确实遇到了一些问题。 这是我的代码: public int lis(final List a) { return maxIncreasing(0, Integer.MIN_VALUE, a); } HashMap memo = new HashMap(); private int maxIncreasing(int index, int lastElt, final List a) { if(memo.containsKey(index)) return memo.get(index); // end? if(index >= a.size()) return 0; int weTake = Integer.MIN_VALUE; // can we take it? […]

配置@PathVariable类型不匹配的错误页面

假设我有一个控制器: @Controller public class SomeController { @RequestMapping(value = “{id}/object.do”) public String showObject(@PathVariable(“id”) Integer id, HttpServletRequest request) { //do smth return “somePage”; } } 当“id”不是数字,但字符串如“aaa / object.do”时,Tomcat会向我显示错误 – “客户端发送的请求在语法上是不正确的”。 有没有办法配置一个错误页面,只有当“id”路径变量的类型不正确时才会显示?

将线程实现到Java Web Crawler中

这是我写的原始网络爬虫:(仅供参考) https://github.com/domshahbazi/java-webcrawler/tree/master 这是一个简单的网络爬虫,它访问给定的初始网页,从页面中删除所有链接并将它们添加到队列(LinkedList),然后逐个弹出它们,每次访问,循环再次开始。 为了加速我的程序和学习,我尝试使用线程实现,这样我就可以同时运行多个线程,在更短的时间内索引更多的页面。 以下是每个class级: 主要课程 public class controller { public static void main(String args[]) throws InterruptedException { DataStruc data = new DataStruc(“http://www.imdb.com/title/tt1045772/?ref_=nm_flmg_act_12”); Thread crawl1 = new Crawler(data); Thread crawl2 = new Crawler(data); crawl1.start(); crawl2.start(); } } 爬虫类 (线程) public class Crawler extends Thread { /** Instance of Data Structure **/ DataStruc data; /** Number […]

ANDROID ZXING:在onPreviewFrame中保存照片每帧都会保存一张照片。 如何在扫描时保存单张照片?

在过去的几个星期里,我一直试图改变Zxing在扫描后立即拍照。 感谢帮助,我可以在PreviewCallback.java中一直保存onPreviewFrame类中的图像。 我在onPreviewMethod方法中使用的代码将遵循,然后简要介绍我的应用程序的工作方式。 public void onPreviewFrame(byte[] data, Camera camera) { Point cameraResolution = configManager.getCameraResolution(); Handler thePreviewHandler = previewHandler; android.hardware.Camera.Parameters parameters = camera.getParameters(); android.hardware.Camera.Size size = parameters.getPreviewSize(); int height = size.height; int width = size.width; System.out.println(“HEIGHT IS” + height); System.out.println(“WIDTH IS” + width); if (cameraResolution != null && thePreviewHandler != null) { YuvImage im = new […]

Java:在线程化时更改标签值

我想创建一个小循环,在我按下GUI上的按钮后,值将每秒更改; 我试过使用一个线程,但我似乎无法让它正常工作。 现在发生的是程序在按下按钮后暂停10秒钟。 你可以帮帮我吗? 这就是我的代码 private void ButtonActionPerformed(java.awt.event.ActionEvent evt) { for (x = 0; x <= 10; x++) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); Thread.currentThread().interrupt(); here. } nummerlabel.setText(String.valueOf(x)); } }

在Android中中止关闭事件等待活动完成

我有以下代码来监听任何与Android关闭事件相关的广播事件。 我可以中止关闭事件(或让它等待),然后启动一个活动。 仅在该活动完成后关闭。 如果没有,为此有任何解决方法吗? 谢谢 AndroidManifest.xml中 ShutdownReceiver.java public class ShutdownReceiver extends BroadcastReceiver { public static final String TAG = MainActivity.class.getSimpleName(); @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, “Shutdown!”); // Abort the Shutdown signal // Starts an Activity and wait until the Activity is completed before shutdown } }