Tag: java

Struts2:更新地图中“对象列表”的值

有一个对象ObjectA ,它有一个ObjectA的列表。 TreeMap有一个TreeMap 。 这个TreeMap有一个String作为键,另一个对象ObjectC的List作为值。 这个TreeMap和里面的list已经使用s:iterator和s:textfield显示在jsp上,并且显示正确。 即s:textfield中的“值”是正确的。 现在,当文本字段被修改时出现问题。 我们如何在动作类中捕获ObjectC中的修改值? 用这里给出的代码,键(“Key1”)进来的动作,但值为空。 Java代码 public class ObjectA implements Serializable { private Integer attr1; private List<ObjectB> objB; //…getters and setters…. public class ObjectB implements Serializable { private Integer attr11; private TreeMap<String,List<ObjectC>> allPlainFields; // …getters and setters…. public class ObjectC implements Serializable { private Integer attr111; public String attr112; // […]

Java中的键绑定与键监听器

我注意到在Java / Swing中,处理关键事件似乎至less有两种不同的方式: 键绑定 主要听众 每个人的优点和缺点是什么,你应该什么时候select一个而不是另一个呢?

拉伸JLabel文本

有没有办法使JLabel的文本伸展到100%的高度? 当组件尺寸改变时,我需要更新文本。 我看到了一些可以工作的解决scheme。 它涉及计算和设置字体大小,所以它看起来是正确的高度。 我也将不得不添加监听器,当高度变化,使其作出回应,我不知道我应该这样做。 我希望与布局经理有更好的解决scheme,但是找不到任何东西。 有任何想法吗?

当我在我的类的构造函数中声明并初始化它们时,为什么我的字段初始化为null或默认值为零?

这是一个典型的问题和答案,类似的问题,这个问题是阴影的结果。 我在我的类中定义了两个字段,一个是引用types,另一个是基本types。 在类的构造函数中,我尝试将它们初始化为一些自定义值。 当我稍后查询这些字段的值时,它们会返回Java的缺省值,对于引用types为null ,对于基本types为0。 为什么发生这种情况? 这是一个可重现的例子: public class Sample { public static void main(String[] args) throws Exception { StringArray array = new StringArray(); System.out.println(array.getCapacity()); // prints 0 System.out.println(array.getElements()); // prints null } } class StringArray { private String[] elements; private int capacity; public StringArray() { int capacity = 10; String[] elements; elements = new […]

如何将ActionListener添加到Java中的JButton中

private JButton jBtnDrawCircle = new JButton("Circle"); private JButton jBtnDrawSquare = new JButton("Square"); private JButton jBtnDrawTriangle = new JButton("Triangle"); private JButton jBtnSelection = new JButton("Selection"); 如何将动作监听器添加到这些button,以便从主方法我可以调用操作actionperformed对他们,所以当他们被点击时,我可以在我的程序中调用他们?

从资产文件夹中读取pdf文件

public void DOCS(View btnDocs) { File fileBrochure = new File("android.resource://com.project.datastructure/assets/abc.pdf"); if (!fileBrochure.exists()) { CopyAssetsbrochure(); } /** PDF reader code */ File file = new File("android.resource://com.project.datastructure/assets/abc.pdf"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file),"application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { getApplicationContext().startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(Stack_dr.this, "NO Pdf Viewer", Toast.LENGTH_SHORT).show(); } } private void CopyAssetsbrochure() { AssetManager assetManager = […]

如何编写一个可以提取JAR文件并将其数据存储在指定目录(位置)的Java程序?

我创build了一个JAR文件。 现在,我创build了另一个Java程序。 我想解压那个JAR文件在其他目录下,这意味着我想要做一些像解压缩一样的东西。 如果我运行jar -xf filename.jar这会导致一些错误: Exception in thread "main" java.io.IOException: Cannot run program "jar": java.io.IOException: error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:459) at java.lang.Runtime.exec(Runtime.java:593)`

方法重载并select最具体的types

示例代码是: public class OverloadingTest { public static void test(Object obj){ System.out.println("Object called"); } public static void test(String obj){ System.out.println("String called"); } public static void main(String[] args){ test(null); System.out.println("10%2==0 is "+(10%2==0)); test((10%2==0)?null:new Object()); test((10%2==0)?null:null); } 输出是: string调用 10%2 == 0是真的 调用的对象 string调用 第一个调用test(null)的方法用String参数调用,根据The Java Language Specification可以理解。 1)任何人都可以解释我在前面的调用中调用test()依据是什么? 2)当我们再次说, if条件: if(10%2==0){ test(null); } else { test(new Object()); […]

无法find“http://java.sun.com/jsp/jstl/core”的标记库描述符

我已经将它列入了我的JSP页面的顶部: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 我已经将JSTL JAR文件放在WEB-INF/lib目录中。 但是,JSP仍然无法parsingtaglib。 我得到下面的错误: 无法find“ http://java.sun.com/jsp/jstl/core ”的标记库描述符 我正在使用Eclipse Juno,项目结构如下所示:

如何减去Java中的date?

我必须深深地减去两个date才能计算出天数: GregorianCalendar c1 = new GregorianCalendar(); GregorianCalendar c2 = new GregorianCalendar(); c1.set(2000, 1, 1); c2.set(2010,1, 1); long span = c2.getTimeInMillis() – c1.getTimeInMillis(); GregorianCalendar c3 = new GregorianCalendar(); c3.setTimeInMillis(span); long numberOfMSInADay = 1000*60*60*24; System.out.println(c3.getTimeInMillis() / numberOfMSInADay); //3653 在.NET中只有两行代码,或者任何现代语言。 这是java的残酷吗? 还是有一个隐藏的方法,我应该知道? 而不是使用GregorianCalendar,可以在util中使用Date类吗? 如果是这样的话,我应该注意一下像1970年那样的微妙的东西吗? 谢谢