在组件之间传递值

我有一个调用AsbtractAction的JDialog ,它会调出一个JFileChooser以便用户可以选择一个目录。 这些都是单独的类。 从JFileChooser传递值的正确方法是什么,所以我可以在JDialog显示目录的路径? 编辑:更新了问题。

Java:如何在迭代/添加元素时从列表中删除元素

这个问题是这个问题中描述(和解决)问题的一个更特殊的例子。 我有两个方法,stopAndRemove(ServerObject服务器)和close()方法。 后者应关闭所有服务器并将其从服务器列表中删除。 该列表定义为 List server. 我不想在closeCurrentlyOpen中使用stopAndRemove中的几乎相同的代码,所以我想做类似的事情: public void closeCurrentlyOpen() { for(ServerObject server : this.servers) { stopAndRemove(server) } } 这将不起作用,因为这将导致ConcurrentModificationException。 我试着复制一份清单 List copyList = new ArrayList(this.servers); 并将其用作foreach循环的列表。 但是,当我在copyList上迭代时,另一个线程可能会将服务器附加到服务器列表,但closeCurrentlyOpen应该会产生一个emtpy列表。 当addServerToList方法同步到servers-list时,执行此操作 public void closeCurrentlyOpen() { synchronized(this.servers) { for(ServerObject server : this.servers) { stopAndRemove(server) } } } 将通过修改解决问题。 但是后来我无法在stopAndRemove方法中同步代码,如果直接调用它是必需的。 在我看来,这三种方法的设计可能需要修改。 任何人的想法?

Spring数据和mongodb – 在@Transactional中简单回滚弹簧

我有2个存储库,一个用于mongodb(DocumentRepository),另一个用于hibernate实体(EntityRepository) 我有一个简单的服务: @Transactional public doSomePersisting() { try { this.entityRepository.save(entity); this.documentRepository.save(document); } catch(…) { //Rollback mongoDB here } } 是否可以在“// Rollback mongoDB here”行回滚mongoDB? 我已经从实体部分回滚(Transactional annotation)

哪个更快? 声明或PreparedStatement

通常,在网络中可以找到这样的代码: private static final String SQL = “SELECT * FROM table_name”; …. 并且对于此SQL查询使用PreparedStatement。 为什么? 据我所知,PreparedStatement花时间预编译SQL语句。 事实certificate,Statement比PreparedStatement更快。 或者我错了?

将在一个JFrame文本字段中输入的值作为其他JFrame中的输入参数传递

如何将在一个JFrame文本字段中输入的值作为输入参数传递给其他JFrame? 通过JTextFields在第一个JFrame输入用户名和密码.. String usr = jTextField2.getText(); String pass = jTextField3.getText(); 相同的用户名和密码应在第四帧中作为输入给出,每个帧在按钮点击时被重定向到其他帧

Apache POI。 复制表

我正在使用apache poi创建一个excel文档。 要在工作簿中创建新工作表,我编写下一个代码: Workbook wb = new HSSFWorkbook(); Sheet sh = wb.createSheet(); 此代码创建并向工作簿添加工作表。 但是我想先创建工作表然后将其添加到工作簿中。 Smth是这样的: Sheet sh = new HSSFSheet(); wb.addSheet(sh); 我需要这样的东西,因为我想将数据从一张工作簿的一张复制到另一张另一张工作簿(工作簿界面有方法Sheet cloneSheet(int) )。 但是,Workbook界面没有像addSheet(Sheet sh)这样的方法。 另外HSSFWorkbook是最终类,所以我不能扩展它来实现add方法我该怎么做?

为什么Java中的HTTP URL会编译?

如果您有这样的程序: public class ABC { public static void main(String args[]) { System.out.println(“1”); http://example.com System.out.println(“2”); } } 请注意在两个输出语句之间写入的URL http://example.com 。 为什么程序编译没有任何错误?

getChildNodes给出了意想不到的结果

我的XML看起来像这样 – ValueGoesHere 我正在使用以下代码处理它 – Document dom = parser.getDocument(); NodeList collected_objects = dom.getElementsByTagName(“object”); System.out.println(“Number of collected objects are ” + collected_objects.getLength()); for (int i = 0; i < collected_objects.getLength(); i++) { Node aNode = collected_objects.item(i); //get children of "objects" NodeList refNodes = aNode.getChildNodes(); System.out.println("# of chidren are " + refNodes.getLength()); //print attributes of "objects" NamedNodeMap […]

我是否正确地使用MVC实现了n层应用程序?

由于对设计模式和架构非常不熟悉,我很难向其他人解释我的最新应用程序是如何设计的。 我在表示层中认为它是纯粹的n层,纯MVC和带有MVC的n层之间切换。 目前我认为后者是正确的,但我想要更有经验的开发人员的想法。 怎么运行的: 浏览器向Tomcat发送HTTP请求。 将请求通过web.xml映射到servlet(我称之为控制器) 控制器实例化一个或多个业务对象并调用这些方法,即customerBO.getById(12) ,它们在调用一个或多个DAO方法(即customerDAO.getById(12)之前将再次执行业务逻辑/validation。 BO返回一个CustomerVO列表给控制器 控制器为视图(JSP)准备属性( request.setAttribute(“customers”, customers); )并选择要使用的.jsp文件,该文件将迭代列表并将XHTML呈现给浏览器。 结构(我的建议/理解) 表示层 :目前正在使用我认为的MVC Web实现:servlet(控制器),jsp(视图)和我自己的OO XHTML表单实现(即CustomerForm)就在这里。 应该可以通过切换此表示层来使用Swing / JavaFX / Flex GUI,而无需在下面的层上更改任何内容。 逻辑层 :分为两层,Business Objects(BO)位于顶层。 负责业务逻辑,但除了输入validation之外我还没有找到太多内容,因为应用程序主要由简单的CRUD操作组成……在许多情况下,这些方法只是在DAO层上调用一个具有相同名称的方法。 使用CRUD方法的DAO类,它再次与下面的数据层联系。 还有一个convertToVO(ResultSet res)方法,它们从数据库和(值列表)值对象执行ORM。 所有方法都将值对象作为输入,即customerDAO-> save(voter)并在成功时返回更新的选举者,在失败时返回null。 数据层 :底层数据存储在数据库中或存储为XML文件。 我没有在这里“编码”任何东西,除了一些MySQL存储过程和触发器。 问题(除了标题中的问题): MVC中的M. 当模型是从逻辑层中的业务对象返回的列表/ VO时,我不确定是否可以调用此n层MVC? 当控制器/视图在这里时,模型是否需要驻留在表示层中? 表示层中的表单模板可以称为模型吗? 如果是这样; BO中的forms和列表都被视为MVC中的M? 根据我的理解,在MVC中,视图应该观察模型并更新更新,但这在视图是呈现的XHTML页面的Web应用程序中是不可能的? 这反过来又引出了一个问题:对于Web应用程序与常规桌面应用程序,MVC的实现方式是否不同? 当所有HTTP请求都在web.xml中显式映射时,我没有使用Front Controller模式吗? 要使用Front Controller,我需要将所有请求转发到标准servlet / controller,然后依次评估请求并调用另一个控制器? Business Layer在我的应用程序中感觉有点“无用”。 你通常在这个图层/对象中放什么? […]

Matcher.find()如何工作

我正在测试Matcher和Pattern类的一个小存根…请参阅下面的小存根.. package scjp2.escape.sequence.examples; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Sample_19 { public static void main(String a[]){ String stream = “ab34ef”; Pattern pattern = Pattern.compile(“\\d*”); //HERE * IS GREEDY QUANTIFIER THAT LOOKS FOR ZERO TO MANY COMBINATION THAT //START WITH NUMBER Matcher matcher = pattern.matcher(stream); while(matcher.find()){ System.out.print(matcher.start()+matcher.group()); } } } 这里……我们比较的字符串是“ab34ef”。 长度为6。 Noe让我们看看迭代…… 迭代否matcher.start()matcher.group() 1 0“” […]