JPanels中的JButtons带有GridLayout JFrame

Java / Eclipse IDE在这里。 我有一个JFrame设置为大小为NxN的GridLayout。 用户将N作为程序开头的命令行给出。 NxN模式的JButtons被添加到JPanels的窗口中,由GridLayout设置在位置(我认为)。 每个JButton都需要自己的JPanel来使用GridLayout吗? 我的印象是你可以为所有按钮设置一个JPanel,并将JPanel设置为JButtons的GridLayout。 我想在按钮数组的左侧添加另一个JPanel,以显示按钮单击(JLabel)和同一左侧JPanel内的重置按钮。 这是(一点点)我的代码,其中N由用户给出,system是我的后台进程类,ButtonEvent是ActionListener / actionPerformed的类: JFrame window = new JFrame(“”); GridLayout layout = new GridLayout(N,N); window.setLayout(layout); for (int row = 0; row < N; row++){ for (int col = 0; col < N; col++){ JPanel panel = new JPanel(); JButton b = new JButton ("("+row+","+col+")"); window.add(b).setLocation(row, col); […]

什么Java编译器使用jsr指令,为什么?

Java字节码语言具有JSR指令。 我用Java 7编译器编译的代码都没有使用此指令。 但是,有时我下载的Java二进制文件确实使用它,尽管很少。 我有兴趣知道编译器使用什么指令,以及Java代码构造会导致它们使用它。 编辑它不是重复的,因为它引用了JSR字节码指令而不是Java规范请求

Pattern.DOTALL与String.replaceAll

我有一个多行HTML文档,我试图从中获取一些东西。 我正在使用java的正则表达式(我知道 – XML解析器bla bla bla,请在这里忍受我:))。 dfahfadhadaaaa sjtsjsrjrsjsrjsrj 我在字符串中输入了这个HTML:输入。 input = input.replaceAll(“”, “buh bye!”); 显然,它不起作用。 但是,如果我将Pattern.compile与Pattern.DOTALL一起使用,我可以获得模式匹配。 所以,我的问题是 – 如何使用string.replaceall执行类似Pattern.DOTALL的操作?

IntelliJ代码完成不适用于新的Java类

IntelliJ IDEA 13已开始在我的本地设置中展示一种非常奇怪的行为。 也就是说,在添加到现有项目的任何新Java类中, Code Completion不起作用。 因此,在新类中声明任何类型的对象变量,然后键入该变量的名称,然后输入点(。)之后,不会对相应对象的任何方法提出建议。 例如,在声明之后 File f = new File(“/home”); 打字 没有提出File类中所有方法的列表,从中选择一个。 事实上,当键入点(。)时,没有任何建议出现在IDE窗口的左下角(在状态栏中),显示消息“标识符预期。标识符预期”。 被展示。 有时,会提出一系列与无关组件或库无关的完全不相关的方法。 奇怪的是,如果上述声明发生在任何现有类中,则Code Completion将按预期工作。 在机器重新启动,IDE重新启动,项目重新导入,关闭/重新打开或重建的许多组合之后,此行为仍然存在。 有任何想法吗?

使用JAXB和Any进行序列化

我有一个定义以下类型的模式: 这会创建一个像这样的对象: @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = “Payload”, propOrder = { “any” }) public class Payload { @XmlAnyElement(lax = true) protected List any; } 现在我尝试将另一个生成的JAXB对象添加到该Payload,执行以下操作: Class payloadClass = …; JAXBContext context = JAXBContext.newInstance( WrapperRequest.class, payloadClass); … marshaller.marshal( wrappedRequest ); 但是我得到一个可怕的exception看起来它永远不会工作所以我决定先将有效负载对象序列化为XML,然后将其作为字符串添加到有效负载中。 StringWriter writer = new StringWriter(); JAXBContext context = JAXBContext.newInstance( sdoRequest.getClass() ); Marshaller marshaller = context.createMarshaller(); marshaller.marshal(new JAXBElement(new […]

意外的java SimpleDateFormat解析exception

我无法理解为什么这几行 Date submissionT; SimpleDateFormat tempDate = new SimpleDateFormat(“EEE MMM d HH:mm:ss z yyyy”); public time_print(String time) { try { submissionT=tempDate.parse(time); } catch (Exception e) { System.out.println(e.toString() + “, ” + time); } } 导致exception并打印出来 java.text.ParseException: Unparseable date: “Tue Mar 31 06:09:00 CEST 2009”, Tue Mar 31 06:09:00 CEST 2009 …虽然“不可解决的”时间符合我传递给SimpleDateFormat()的格式字符串..任何想法?

该方法如何推断的类型

以下方法完美无瑕 public void fromJsonArray(String jsonString,Type tToken) { Gson g = new Gson(); T list = g.fromJson(jsonString,tToken); System.out.println(list); } 但我没有说明这种方法中的是什么。 编译器如何将fromJson方法返回的值fromJson i型未指定的变量list ? 我刚刚测试了答案的有效性,说明从方法的返回类型推断 。 它似乎没有成功。 请查看以下代码。 它甚至没有编译 import java.util.*; class Sample { public List getT(String s) { List list = new ArrayList(); list.add(s); return list; } public void test(){ T list = getT(“test”); System.out.println(l); } […]

在字符串中搜索单词

如果我在字符串中查找特定单词,例如,在字符串“你好吗”我正在寻找“是”。 常规indexOf()工作得更快更好还是正则表达式匹配() String testStr = “how are you”; String lookUp = “are”; //METHOD1 if (testStr.indexOf(lookUp) != -1) { System.out.println(“Found!”); } //OR //METHOD 2 if (testStr.match(“.*”+lookUp+”.*”)) { System.out.println(“Found!”); } 上面两种方法中的哪一种是在另一个字符串中查找字符串的更好方法? 还是有更好的选择? Ivard

如何创建具有指定宽度和显示所有文本所需的最小可能高度的JTextArea?

在我可以找到的所有使用JTextArea的示例中,在构造JTextArea之前已知高度和宽度,如果JTextArea需要更多高度,则将其放在JScrollPane 。 显然, JTextArea的高度取决于宽度和文本内容。 现在,我的情况要求我不使用JScrollPane ,而是让JTextArea足够高以显示所有文本。 当我创建JTextArea ,我知道文本内容以及它将使用多少宽度; 我不知道高度 – 我希望在不切断任何文本的情况下尽可能小。 这似乎很难实现。 作为旁注, JTextArea将被添加到没有布局管理器的JPanel中 – 它使用基于添加的组件的首选大小的绝对定位。 这要求我的JTextArea将在getPreferredSize()上返回正确的维度。 正确的尺寸应该是我在构造时提供的宽度,以及显示所提供宽度的所有文本所需的最小高度。 我发现了一些类似的线程,讨论了JTextArea所涉及的奇怪/错误,有时通过在父容器上调用pack()两次来解决。 这不是我的选择。 我很想创建我自己的JTextArea ,它接受一个宽度和字符串,并根据宽度和字体设置计算必要的最小高度,但我想我会先考虑先花费时间才能做到这一点。 希望我的问题很明确。 感谢大家的帮助!

从maven传递一个java参数

我需要用maven执行一些测试,并从命令行传递一个参数。 我的java代码应该获取参数:System.getenv(“my_parameter1”); 我在pom.xml文件中定义参数,如下例所示:(后者,我修改pom.xml以从公共行获取参数mvn clean install -Dmy_parameter1 = value1) 但它不起作用; System.getenv(“my_parameter1”)返回null。 我应该如何在pom.xml文件中定义参数? 的pom.xml … value1 org.apache.maven.plugins maven-surefire-plugin slowTest test test false **/*Test.java **/*TestSlow.java value1