JasperReports:根据组计算页数

问题是这样的。 页面上显示的报告页码不应取决于当前,而应取决于组页面。 让我解释: 我有一个包含2个组的报告,每组有4页,每组有两页,我需要做的是以下内容: group 1 page 1: should be: 1/2 -> current: 1/4 group 1 page 2: should be: 2/2 -> current: 2/4 group 1 page 1: should be: 1/2 -> current: 3/4 group 1 page 2: should be: 2/2 -> current: 4/4 有什么办法可以做到这一点…… PS。 不允许使用黑魔法,我查看了JasperReports中定义的变量,但它们都不适合配置文件:)

简单的GUI Java计算器

我正在构建一个简单的GUI Java计算器。 我有一个问题,找到一个包或找出一个方法来进行实际的计算。 到目前为止,我已经想到,当我进行数学运算时,文本框中的数字会保存在临时位置。 然后,当我点击”=”按钮时,它会进行计算,但我不知道如何告诉它采取临时加数学运算和第二个数字并根据所选数学运算点击进行计算, +, -, *, / import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class JavaCalculator extends JFrame { private JButton jbtNum1; private JButton jbtNum2; private JButton jbtNum3; private JButton jbtNum4; private JButton jbtNum5; private JButton jbtNum6; private JButton jbtNum7; private JButton jbtNum8; private JButton jbtNum9; private JButton jbtNum0; private JButton […]

一分钟后立即停止线程

我有一个JButton来调用我的线程。 但我真正想做的是在一分钟之后停止线程! 我的actionListener方法是: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { new Frame2().setVisible(true); Thread t=new Thread(new Frame2()); t.start(); } 我运行一分钟的线程如下: public void run(){ int i; while(!Thread.currentThread().isInterrupted()){ for(i=0;i<=100;i++){ if(i==100){ Thread.currentThread().interrupt(); } try { Thread.currentThread().sleep(600); } catch (InterruptedException ex) { System.out.print("THREAD CLOSED"); return; } } System.out.print("DOING THINGS BLA BLA"); } } 问题:我成功地在一分钟后停止了线程,但我无法做任何想要的事情。 我只想知道如何才能实现这一点,以便只运行一分钟线程,并在线程中我想做我的事情! 但是怎么样? 我错了这种方法吗? 如果,是的那么什么应该是正确的方法?

从解析器创建抽象树问题

我需要很大的帮助,我有两个简单的类Tree和Node(我只是在界面上使用较少的空间,我可以轻松修改那些类),我也有flex文件和解析器文件,需要创建AST(抽象语法树 – 在Node对象中放置标记并以正确的方式填充Tree)。 public class Tree { Node root; public void AddNode(Node n){} public void Evaluate(){} } public class Node { public String value; public int type; Node left, right; } 这是解析器文件 import java_cup.runtime.*; parser code {: public boolean result = true; public void report_fatal_error(String message, Object info) throws java.lang.Exception { done_parsing(); System.out.println(“report_fatal_error”); report_error(); } […]

对齐JButtons

我不知道为什么我无法在下面的代码中调整按钮的位置。 我有几条线设置边界,但我必须遗漏一些东西。 public DayGUI() { mainFrame = new JFrame(“What Kind Of Day Are You Having?”); btnGood = new JButton(“Good”); btnBad = new JButton(“Bad”); btnGood.setBounds(10, 10, 80, 20); btnBad.setBounds(10, 30, 80, 20); Container c = mainFrame.getContentPane(); c.setLayout(new FlowLayout()); c.add(btnGood); c.add(btnBad);

java,驱动APIv2,appengine 1.7.3,struts2.3.4.1,OAuth2。 TokenResponseException:400 OK invalid_grant

我收到错误invalid_grant我已经看过googleing arround,但是在这个问题已经有几天了。 错误被抛入: File file = insert.execute(); 我只是想从我的webapp上传文件到google驱动器。 我正在使用服务帐户在API Access(https://code.google.com/apis/console/)中生成的私钥对(.p12): Service account Use service accounts to call Google APIs on behalf of your application instead of an end-user. Learn more Client ID: xxx-xxxxxx.apps.googleusercontent.com Email address: xxx-xxxxxxxxxxx@developer.gserviceaccount.com Public key fingerprints: a108d8713103e09d0013655c9f80458f03e3a38a – Delete… 在Google APis – >驱动SDK(https://code.google.com/apis/console/?api=drive#project:347347146680:drive_sdk)中,我已将此ClientID放入: Drive Integration OAuth Client ID (Required) Enter the Client […]

有多少个线程可以同时调用对象的非同步方法?

所以,假设我有一个带有方法m的类X. 方法m 不是同步的,它不需要,因为它不会真正改变X类型的对象x的状态。 在某些线程中,我调用这样的方法:xm()。 所有这些线程都使用相同的对象x。 这个方法(方法m)可以同时在对象x上调用多少个线程? 可能是这个方法被调用,比方说,100个线程是我的应用程序的瓶颈? 谢谢。

使用HashBasedTable作为累加器的Guava ImmutableTable的Java 8收集器给出了IllegalAccessError

通过返回ImmutableTable方法的字符串处理列表。 例如ImmutableTable process(String item) { /*…*/} 。 收集结果,即合并所有结果(单个表可能包含重复项)并返回ImmutableTable 。 当没有重复项时,我当前的实现工作: final ImmutableTable result = itemsToProcess.parallelStream() .map(item -> ProcessorInstanceProvider.get() .buildTable(item)) .collect(toImmutableTable()); public static Collector<ImmutableTable, ImmutableTable.Builder, ImmutableTable> toImmutableTable() { return Collector.of( ImmutableTable.Builder::new, ImmutableTable.Builder::putAll, ( a, b) -> a.putAll(b.build()), ImmutableTable.Builder::build); } 但收集ImmutableTable时失败,因为存在重复的行列条目,因此构建失败。 如何防止构建失败? 我如何使用HashBaseTable ,它将与重复项一起使用。 像T – ImmutableTable , A – HashBasedTable和R – ImmutableTable内存使用量最少吗? 试过: final HashBasedTable result […]

VTD-XML似乎破坏了XML文档中的转义字符串

我正在研究一个XML数据集( 此处提供的DrugBank数据库),其中一些字段包含转义的XML字符,如“&”等。 为了使问题更具体,这是一个示例场景: DB00001 # Askari AT, Lincoff AM: Antithrombotic Drug Therapy in Cardiovascular Disease. 2009 Oct; pp. 440–. ISBN 9781603272346. “Google books”:http://books.google.com/books?id=iadLoXoQkWEC&pg=PA440. . … … 由于整个文档很大,我解析如下: VTDGen gen = new VTDGen(); try { gen.setDoc(Files.readAllBytes(DRUGBANK_XML)); gen.parse(true); } catch (IOException | ParseException e) { SystemHelper.exitWithMessage(e, “Unable to process Drugbank XML data. Aborting.”); } VTDNav nav = […]

java 8 switch case默认为类类型的break

我一直在寻找java的切换类型,我在这里找到了一个解决方案: 在java中切换类型 但问题是,解决方案并不像是一个带有break的switch ,确定会发生这种情况,因为我循环使用了Consumer ,我想知道一种修改我当前代码的好方法或清理替代方法来处理我的类类型, 在句柄第一次匹配后中断并且默认是仅处理不匹配(这里是父类StripeObject )。 我的业务是处理来自webhooks的条带事件,我正在使用stripe-java ,所以我的代码现在是这样的: public void handleWebHookEvent(Event eventJson) throws CardException, APIException, AuthenticationException, InvalidRequestException, APIConnectionException { Stripe.apiKey = configuration.getString(AppConstants.STRIPE_API_KEY); // Verify the event by fetching it from Stripe Event event = Event.retrieve(eventJson.getId()); Logger.debug(AppUtils.concatStrings(“|-> Event Received: [“, event.getId(), “] Type: [“, event.getType(), “] Request ID: [“, event.getRequest(), “]”)); handleEventObject(event.getData().getObject()); } private void […]