在Swing中的表单validation期间绘制警告符号

我开发了一个swing表单,用于validation条目,因为焦点从JTextComponent中丢失,如果条目正确,则背景涂成绿色,否则涂成红色。 这是代码: – import java.awt.Color; import java.awt.GridLayout; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.text.JTextComponent; public class Form extends JFrame implements FocusListener{ JTextField fname,lname,phone,email,address; BufferedImage img; public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable(){public void run(){new Form();}}); } public Form() { […]

在Java中,使用BufferedWriter附加到文件有什么好处?

我正在看下面的例子 其中使用以下代码 try { BufferedWriter out = new BufferedWriter(new FileWriter(“outfilename”)); out.write(“aString”); out.close(); } catch (IOException e) {} 做得有什么好处 FileWriter fw = new FileWriter(“outfilename”); 我已经尝试了两种方法,它们在速度方面似乎可以在一次添加一行文件

是否真的值得为实体类实现toString()

始终建议覆盖(实现)类的toString()方法。 Java API文档本身说:“建议所有子类都覆盖此方法。” 有效Java中的Bloch具有“始终覆盖toString”项。 只有傻瓜才与布洛赫相矛盾,对吧? 然而,我怀疑这个建议:是否真的值得为实体类实现toString() ? 我会尝试列出我的推理。 实体对象具有唯一标识; 即使两个entites具有相同的属性值,它也永远不会与另一个对象相同。 也就是说,(对于非null x ),以下不变量适用于实体类(根据定义): x.equals(y) == (x == y) toString()方法返回一个“文本表示”其对象的字符串(用Java API的话说)。 良好的表示捕获对象的基本要素,因此如果两个表示不同,则表示不同(非等效)对象的表示,相反,如果两个表示是等价的,则它们是等效对象的表示。 这表明以下对于良好表示的不变性(对于非空x , y ): x.toString().equals(y.toString()) == x.equals(y) 因此,对于实体,我们期望x.toString().equals(y.toString()) == (x == y) ,即每个实体对象应该具有唯一的文本表示, toString()返回。 某些实体类将具有唯一的名称或数字ID字段,因此它们的toString()方法可以返回包含该名称或数字ID的表示。 但通常, toString()方法无法访问此类字段。 如果没有实体的唯一字段, toString()可以做的最好的事情就是包含一个对于不同对象不太可能相同的字段。 但这正是System.identityHashCode()的要求,这是Object.toString()提供的。 因此对于没有数据成员的实体对象, Object.toString()是可以的,但对于大多数类,您希望将它们包含在文本表示中,对吧? 实际上,您希望包含所有这些:如果类型具有(非null)数据成员x ,您可能希望在表示中包含x.toString() 。 但这会对持有对其他实体的引用的数据成员产生问题:即哪些是关联 。 如果Person对象具有Person father数据成员,则天真实现将生成该人的家谱的片段,而不是Person本身。 如果存在双向关联,那么天真的实现将会递归,直到您获得堆栈溢出所以可能会跳过持有关联的数据成员? 但是有关Person husband和Person wife数据成员的价值型Marriage怎么样? 这些关联应该由Marriage.toString()报告。 […]

HTTP状态404 – Servlet 不可用

问题 :我的带有web.xml的index.jsp继续进入HTTP 404和500 我正在使用Tomcat6。 这是来自index.jsp: Registration First name: Last name: 当我在注册时: 我打了名字和姓,我进入404,消息: HTTP状态404 – Servlet RegistrationServlet不可用 类型状态报告 消息 Servlet RegistrationServlet不可用 description请求的资源(Servlet RegistrationServlet不可用)不可用。 Apache Tomcat / 6.0.35 你认为这个错误的原因是什么? RegistrationServlet类位于文件src/coreservlets/下的src/coreservlets/文件夹中 我检查了web.xml,但它似乎没问题,但这里是(如果它会有帮助): ShowBalance coreservlets.ShowBalance ShowBalance /show-balance RandomNumberServlet coreservlets.RandomNumberServlet RandomNumberServlet /random-number RegistrationServlet coreservlets.RegistrationServlet RegistrationServlet /register PrimeServlet coreservlets.PrimeServlet PrimeServlet /prime index.jsp index.html 过去两天我一直试图解决这个小罪魁祸首,但没有,任何帮助都会非常感激。 编辑: 根据要求,这里是RegistrationServlet package coreservlets; import java.io.*; import […]

单击绘制的对象

我有一个名为Shape的类,它inheritance自JPanel。 许多子类反过来扩展Shape类,每种类型的形状一个。 每个形状都有自己的overriden paint()方法,它绘制相应的形状。 我希望能够点击任何形状,我现在正试图实现这个逻辑。 请注意,每个形状都已添加到arrayList中。 但是,即使我在形状内部明确单击,contains语句也始终返回false。 有任何想法吗?

如何在Collectors.toMap合并函数中获取密钥?

在Collectors.toMap()期间找到重复键条目时,将调用合并函数(o1, o2) 。 问题:如何获得导致重复的密钥? String keyvalp = “test=one\ntest2=two\ntest2=three”; Pattern.compile(“\n”) .splitAsStream(keyval) .map(entry -> entry.split(“=”)) .collect(Collectors.toMap( split -> split[0], split -> split[1], (o1, o2) -> { //TODO how to access the key that caused the duplicate? o1 and o2 are the values only //split[0]; //which is the key, cannot be accessed here }, HashMap::new)); 在合并函数内部,我想根据键确定 ,如果我取消映射,或继续并接受这些值。

什么是多级外卡? 语法混乱

我正在阅读AngelikaLangerGenericsFaq的多级外卡。 我对语法很困惑。 该文件说 Collection<Pair>是genericsCollection接口的具体实例。 它是不同类型对的异构集合。 它可以包含Pair , Pair , Pair , Pair等类型的元素,依此类推。 换句话说, Collection<Pair>包含不同类型的Pairforms的混合对。 类型Collection<? extends Pair> Collection<? extends Pair>是一个通配符参数化类型; 它不代表具体的参数化类型。 它代表集合系列中的代表,它是Collection接口的实例化,其中type参数的forms为Pair 。 兼容的实例化是Collection<Pair> , Collection<Pair> , Collection<Pair>或Collection<Pair> 。 换句话说,我们不知道它所代表的Collection的实例。 根据经验,您必须从上到下阅读多级通配符。 我对以下几点感到困惑。 有人可以用例子详细说明这三个引号。 我完全迷失在语法中 文件说,para-1是generics类型的具体实例,而其他不是具体的实例化? 那个怎么样? 自上而下阅读外卡是什么意思? 多级外卡有什么优势? 有人可以详细说明这些要点。 谢谢。

子类构造函数是否需要超类构造函数的所有参数?

我有两个class, Staff和AdvancedStaff ,它扩展了前者。 Staff有这个构造函数: public Staff (String number, String title, String name, String role, char level) { staffNumber = number; staffTitle = title; staffName = name; staffRole = role; payScaleLevel = level; } 我会注意到所有实例变量都已设置为私有。 虽然, Advanced Staff有这个构造函数: public AdvancedStaff (String number, String title, String name) { super(number, title, name); role = “Entry level Advanced Staff”; […]

如何编写Jersey Multipart webapp,Tomcat Server

我一直在做很多REST教程并享受它们。 最近,我尝试用Netbeans编写一个jersey多部分webapp,但我似乎无法,因为它似乎缺少我的jersey库。 我下载了jersey-multipart.jar文件,但仍然没有帮助: @Path(“/file”) public class UploadFileService { @POST @Path(“/upload”) @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFile( @FormDataParam(“file”) InputStream uploadedInputStream, @FormDataParam(“file”) FormDataContentDisposition fileDetail) { 此代码来自博客。 我试图将它放在我的webapp中,但@FormDataParam标记和FormDataContentDisposition类无法识别。 我下载了jersey-multipart.jar,这似乎解决了@FormDataParam标记问题,但没有解决FormDataContentDisposition类。 我正在使用Tomcat 7.0。 如何成功创建一个没有任何问题的泽西多部分webapp? 为什么在Netbeans的jersey库中不包含泽西多部件jar文件? 谢谢。

JSF 2.0:为什么我的ViewScope Bean重新创建,即使仍然在同一个视图

在我的.xhtml页面中,我有以下表格: … … CustomerTemplate.xhtml是: … // import css, js files … // Other things on the page … 这是我的ManagedBean: @ManagedBean @ViewScoped public class MrBean { … private List items; … @PostConstruct public void prepareItemList() { … Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); partnerID = Long.parseLong(params.get(“partnerID”)); … } } 如您所见,我的MrBean是一个ViewScoped ManagedBean。 我预计@PostContruct函数只会在第一次呈现页面时调用一次。 但是,当我单击Add To Cart按钮时,我在Long.parseLong(params.get(“partnerID”))行遇到了nullexception,即使我仍然在同一个View上。 如果有人能就如何解决这个问题给我一个建议,我将非常感激。 更新:我设法通过将commandButton包装在ajax标记内来使函数正常工作,如下所示: … […]