在JPanel中动态添加组件

如何在jpanel中动态添加组件? 当我点击按钮时,我有添加按钮,组件应该添加到JPanel。 我的问题是当我点击添加按钮时,向jpanel添加一个文本字段和按钮,用户可以根据我必须将其添加到jpanel的任意次数点击添加按钮。 我已将scrollerpane添加到我的jpanel,并且jpanel布局管理器设置为null。

设置JComboBox PopupMenu的大小

我正在编写一个扩展JComboBox的自定义组件。 我的问题是,如果我要添加或删除项目,PopupMenu将不会实现其大小。 所以列表中有2个项目,但是如果我在PopupMenu中有2个“空”项目之前有4个项目。 我发现的唯一解决方法是做(在JIntelligentComboBox.java第213行) this.setPopupVisible(false); this.setPopupVisible(true); 但结果将是一个闪烁的PopupMenu 🙁 那么我还能做些什么来刷新/重绘PopupMenu而不会闪烁? 用于测试: 组件和一点测试程序 要产生我的问题,你可以: 输入“e” 按“返回” 输入“m” 提前致谢 编辑:我的目标是一个ComboBox,其行为类似于Firefox或Chrome中的地址栏,我想显示包含类型字符的PopupMenu的所有项目。 cboxtester.java: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.plaf.basic.BasicComboBoxRenderer; public class cboxtester extends JFrame { private DefaultComboBoxModel dcm = new DefaultComboBoxModel(new Object[][] {new Object[] {“Mittagessen”, “”, 0}, new Object[] {“Essen”, […]

在Netbeans中启用断言

我想做点什么 java -enableassertions com.geeksanonymous.TestClass 我该怎么做呢?

如何从spring security获取当前登录的用户对象?

我使用的是Spring安全版3.1.4.RELEASE。 如何访问当前登录的用户对象? SecurityContextHolder.getContext().getAuthentication().getPrinciple() 返回用户名,而不是用户对象。 那么如何使用返回的用户名并获取UserDetails对象? 我试过以下代码: public UserDetails getLoggedInUser(){ final Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (auth != null && auth.isAuthenticated() && !(auth instanceof AnonymousAuthenticationToken)) { if(auth.getDetails() !=null) System.out.println(auth.getDetails().getClass()); if( auth.getDetails() instanceof UserDetails) { System.out.println(“UserDetails”); } else { System.out.println(“!UserDetails”); } } return null; } 以下是结果: [2015-08-17 19:44:46.738] INFO http-bio-8443-exec-423 System.out class org.springframework.security.web.authentication.WebAuthenticationDetails [2015-08-17 19:44:46.738] INFO http-bio-8443-exec-423 […]

Object.toString或Object.hashCode是否给出了对象的内存地址

通常声称Object.hashCode() (所有对象的默认实现Object.hashCode()的实现给出了对象的内存地址。 该声明通常附加于Object.to String()产生的特殊输出的解释。 请看这里的例子。 对于我所知道的任何JVM / JRE,情况肯定不是这样。 尤其是因为地址通常是64位长。 而且,垃圾收集器重定位对象,因此地址会发生变化。 我已经看到声称它可以是对象的初始内存地址。 但是,由于许多对象具有相似的地址,因此对于哈希码来说这将是一个糟糕的选择。 是否存在或曾经存在任何广泛使用的JVM / JRE,它们是对象的(初始)内存地址。 我知道Object类的JavaDoc表明实现的hashCode可能是内存地址。 但我怀疑这是一个从未更新过的严重过时的声明。 实际上,当前的Oracle JVM不使用内存地址(但可以配置为执行此操作): https://stackoverflow.com/a/16105878/545127 hashCode是一个内存地址的想法是一个历史人工制品: https://stackoverflow.com/a/13860488/545127 我的问题是, 任何广泛使用的JVM是否(和哪些)使用内存地址作为其(默认)实现。

如何在Java中拆分字符串并保留分隔符?

我有这个字符串(Java 1.5): :alpha;beta:gamma;delta 我需要一个数组: {“:alpha”, “;beta”, “:gamma”, “;delta”} 在Java中最方便的方法是什么?

Action上的Java FX fxml

我想在我的Controller类中定义的按钮中添加一个方法 在控制台中只是一个错误,告诉我它找不到该方法 这是代码 sample.fxml 和Controller.java package sample; import javafx.fxml.FXML; import javafx.fxml.Initializable; import java.awt.event.ActionEvent; import java.net.URL; import java.util.ResourceBundle; public class Controller implements Initializable { @Override public void initialize(URL url, ResourceBundle resourceBundle) { } @FXML private void test(ActionEvent event) { System.out.println(“lollolol”); } }

使用Java中特殊字符之前的转义替换特殊字符

在我的java代码中,如果一个字符串输入有任何提到的特殊字符,那么前面应该有\\ 特殊字符集是{+, -, &&, ||, !, (, ), {, },[, ], ^, “”, ~, *, ?, :, \} 。 我尝试使用String.replaceAll(old,new)但令我惊讶的是它不起作用,即使我为’old’和’new’提供了正确的值。 if old=”:”,new=”\:” 我将特殊字符放在一个String数组中,在for循环中迭代它,检查它是否存在于字符串中,如果是,则input.replaceAll(“:”,”\\:”) 。 但它没有给我预期的输出。 请帮忙 String[] arr = { “+”, “-“, “&&”, “||”, “!”, “(“, “)”, “{“, “}”, “[“, “]”, “^”, “\””, “~”, “*”, “?”, “:”, “\\”, “AND”, “OR” }; for (int i = […]

Java 6中对ISO 8601格式的通用支持

Java 7通过字符X (而不是小写或大写Z )在ISO 8601格式的SimpleDateFormat类中引入了支持。 在Java 6中支持这样的格式需要预处理,因此最好的方法是问题。 这种新格式是Z (大写Z)的超集,另外还有两种变体: “分钟”字段是可选的(即,2位而不是4位时区有效) 冒号字符(’:’)可用于将2位“小时”字段与2位“分钟”字段分开。 因此,正如人们可以从SimpleDateFormat的Java 7文档中看到的那样,以下3种格式现在是有效的(而不仅仅是Java 6中由Z覆盖的第二种格式),当然,等效: -08 -0800 -08:00 正如之前关于支持这种“扩展”时区格式的特殊情况所讨论的那样 ,总是以’:’作为分隔符,将Java 7function向后移植到Java 6中的最佳方法是将SimpleDateformat类子类化并覆盖它parse()方法,即: public Date parse(String date, ParsePosition pos) { String iso = … // Replace the X with a Z timezone string, using a regex if (iso.length() == date.length()) { return null; // Not an ISO […]

JSP表达式语言获取参数

我试图从表达式语言的request获取一个String参数”username” 。 我做了一些研究,但找不到办法,我希望类似于${pageContext.request.parameter.username} 如何使用表达式语言获取特定的请求参数?