处理发生时动态刷新JTextArea?

我正在尝试创建一个非常简单的Swing UI,通过JTextArea将信息记录到屏幕上,因为处理在后台进行。 当用户点击按钮时,我希望每次调用: textArea.append(someString + “\n”); 立即显示在用户界面中。 目前,在单击按钮后处理完成之前,JTextArea不会显示所有日志信息。 我怎样才能让它动态刷新?

如何准确地确定文件中的mime数据?

我正在为程序添加一些function,以便通过读取MIME数据来准确确定文件类型。 我已经尝试过几种方法: 方法1: javax.activation.FileDataSource FileDataSource ds = new FileDataSource(“~\\Downloads\\777135_new.xls”); String contentType = ds.getContentType(); System.out.println(“The MIME type of the file is: ” + contentType); //output = The MIME type of the file is: application/octet-stream 方法2: import net.sf.jmimemagic.*; try { RandomAccessFile f = new RandomAccessFile(“~\\Downloads\\777135_new.xls”, “r”); byte[] fileBytes = new byte[(int)f.length()]; f.read(fileBytes); MagicMatch match = Magic.getMagicMatch(fileBytes); System.out.println(“The […]

是否可以将所有jar依赖包装在一个大jar子里?

我知道这不是“最佳实践”,但我可以将所有依赖项包含在一个大jar子里吗?

直接从存储库加载Drools / KIE Workbench工件

我们尝试使用全新的KIE工作台(以前称为Guvnor)和新的基于maven的工件切换到Drools 6。 现在我想在第二张图片(“部署”)中使用本博文中描述的系统:通过HTTP从工作台存储库加载规则(虚线箭头,从左边的HTTP直接进入应用程序) 。 问题是,我不知道如何将工件加载到我的KieServices / KieModule对象中。 我基本上不想使用maven,我也无法全局提供maven的settings.xml作为Java参数的路径,所以这个选项已经出来了。 我认为这是一个类似的问题。 正如那里提到的,我也尝试加载一个URL资源,但问题似乎是系统无法确定给定URL的ResourceType是什么类型( http://localhost:8080/kie-drools/maven2/…/-1.0.0.jar )是。 是的,我可以直接从浏览器访问存储库中的.jar,无需身份validation。 任何想法或教程如何做到这一点? 我的测试代码: public static void main(String[] args) { KieServices ks = KieServices.Factory.get(); KieRepository repo = ks.getRepository(); String url = “http://localhost:8080/kie-drools/maven2/de/test/test/1.0.0/test-1.0.0.jar”; Resource urlResource = ks.getResources().newUrlResource(url); KieModule kModule = repo.addKieModule(urlResource); // this already fails } 错误: Exception in thread “main” java.lang.RuntimeException: Unable to fetch […]

日历是否有闰秒?

是否由GregorianCalendar类提供闰秒 ? 如果没有,是否有任何第三方图书馆迎合它?

java从另一个类调用一个方法

我正在解决一个问题而且我很困难,因为我刚开始学习java。 我能理解这一点的任何帮助都会很棒。 我必须编写一个包含两个类的程序。 主类将从文件中读取并使用第二个类来查找在文件中重复相同单词的次数,并将它们添加到一个数组中,该数组包含单词和单词重复的次数。 我对阅读文件部分感到满意​​。 我似乎无法绕过如何从第二个类调用一个方法来将单词添加到数组并增加计数器。 到目前为止,这是我的代码,如果你运行它,你会看到我对你有多少错误有多新。 import java.io.*; public class Words{ public static void main (String [] args) { ProcessInput(); System.out.println(“\nprogram finished”); } public static WordList ProcessInput( ) { BufferedReader inputFile; String inputLine; String[] word; WordList words; try { inputFile=new BufferedReader(new FileReader (“inputFile.txt”)); inputLine = inputFile.readLine(); while (inputLine !=null) { word=inputLine.toLowerCase().split(” “); for (int […]

Javagenerics和varargs

我想用generics和varargs实现一个函数。 public class Question { public static void doNastyThingsToClasses(Class parent, Class… classes) { /*** something here ***/ } public static class NotQuestion { } public static class SomeQuestion extends Question { } public static void main(String[] args) { doNastyThingsToClasses(Object.class, Question.class, SomeQuestion.class); // OK doNastyThingsToClasses(Question.class, SomeQuestion.class); // OK doNastyThingsToClasses(Question.class, Object.class, SomeQuestion.class); // compilation failure } } […]

.class是方法还是字段?

java中的任何类都有.class,我想知道.class是否是静态方法? 或者它是一个公共静态领域? boolean alwaysTrue = (String.class == Class.forName(“java.lang.String”));

在Eclipse中更改Web项目的Tomcat上下文路径

我正在使用Tomcat 6并使用Eclipse中的Serversfunction来管理它。 我有一个名为foobar的项目,我想更改上下文路径,以便引用的URL是http:// localhost:8080 / app而不是http:// localhost:8080 / foobar 。 我已经尝试了一切我能想到的: 更新了Context部分中的server.xml路径值 从 至 我更新了文件conf / Catalina / localhost / foobar.xml来设置path =“/ app”和docBase =“foobar”没有运气。 我试图在Eclipse中删除模块并重新部署至少十几次。 我在这里看了一些建议: 如何在Eclipse中更改动态Web项目的上下文根? 我知道我可以简单地重命名项目,但我不想。 编辑: 我还应该提一下,我在应用程序上下文中有一些数据库设置。 我不确定是否应将其设置为foobar.xml或app.xml ..? Eclipse会自动在conf / Catalina / localhost中创建一个app.xml文件,但在进行更改后似乎会被忽略。

如果不使用返回值,Class.forName()的用途是什么?

我在示例应用程序中看到了使用商业JDBC驱动程序的这一行: Class.forName(“name.of.a.jcdb.driver”) 不使用返回值。 这条线的目的是什么?