通过JLayer和LayerUI缩放JLayeredPane

在Stack Overflow问题上已经提出,在Swing应用程序中实现缩放的最佳方法是通过Java 7提供的JLayer装饰器。 我一直在关注Oracle教程并认为最好的方法是创建我自己的ZoomUI来扩展LayerUI 。 到目前为止,我的想法是这个类将有一个zoom成员变量,在绘制实际组件之前应用它。 然后我可以使用这个相同的类来捕获鼠标事件并将它们发送到未缩放的坐标。 我在第一步遇到一些麻烦,无法理解为什么g2.scale(zoom, zoom)调用在我的SSCCE下面没有效果。 import javax.swing.*; import javax.swing.plaf.LayerUI; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; public class Demo { public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); final JLayeredPane panel = new JLayeredPane(); final ZoomUI layerUI = […]

无法通过JRXmlLoader加载位于jar文件中的jrxml:获取java.io.FileNotFoundException

我在Java应用程序中使用JasperReports 。 我有一个名为“reports”的包来存储生成的所有报告。 这是我在我的应用程序中调用我的jasper报告的方式。 JasperDesign jd = JRXmlLoader.load(“C:\\Users\\Sandaru Weerathunga\\Desktop\\Dasatha Institute\\src\\reports\\teacherPay.jrxml”); 这很有效。 我没有给出完整的路径,而是尝试: JasperDesign jd = JRXmlLoader.load(“/reports/teacherPay.jrxml”); 但是这在运行程序时显示错误: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: /reports/teacherPay.jrxml (The system cannot find the path specified) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:176) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156) 提供JRXmlLoader的完整路径是不合适的,因为如果要在其他计算机上运行此应用程序,则必须根据计算机路径更改所有编码。 所以帮助我

使用线程捕获进程输出

我正在使用一个线程来捕获进程的流输出,然后将该流输出到eclipse控制台。 我的问题是何时终止正在进行流输出的线程。 Thread t = new Thread(new Runnable(){ private boolean isProcessDone(Process p) { //not sure what to do here } public void run() { Process p = Runtime.getRuntime().exec(“executable with output”); BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); BufferedReader error = new BufferedReader (new InputStreamReader(p.getErrorStream())); while ( !isProcessDone(p) ) { String line; if( (line = input.readLine()) != […]

从Java发送XPath变量

我有一个XPath表达式,用于搜索静态值。 在此示例中,“test”是该值: XPathExpression expr = xpath.compile(“//doc[contains(., ‘test’)]/*/text()”); 如何传递变量而不是固定字符串? 我在Eclipse中使用Java。 有没有办法使用Java String的值来声明XPath变量?

将一种测试方法的输出传递给另一种方法testng

我必须在testng中编写以下unit testing用例: saveProductTest,如果产品详细信息在DB中成功保存,将返回productId。 modifyProductTest,它应该使用以前保存的productId作为参数。 我正在使用testNg数据提供程序从XML文件中获取saveProductTest和modifyProductTest方法的产品详细信息输入(PrdouctName,ReleaseDate)。因为productId是在save方法中生成的,所以我必须将它传递给modify方法。 将一个测试方法的输出传递给testng中的另一个方法的最佳方法是什么?

JSP不在Spring中显示模型中的对象

我有什么应该是一个容易解决的问题,但我没有运气。 在我的servlet-servlet.xml文件中,我有以下bean(除了其他bean): 我的测试控制器看起来像这样: package com.servlet.web; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class TestController { protected final Log log = LogFactory.getLog(getClass()); @RequestMapping(“/test”) public String methodName(Map map) { map.put(“someMessage”, “some string here”); return “test”; } } 我的jsp视图如下所示: servlet.com ${someMessage} 所以,当我查看jsp时,我会期待someMessage的值(这里有一些字符串),但我只得到以下内容: servlet.com ${someMessage} 当我开始记录日志时,我看到我的someMessage对象正在模型中: 22:21:17,425 DEBUG DispatcherServlet:852 – DispatcherServlet with […]

如何使用java中的XMLEndcoder在xml文件中编写带有数据的JTable状态

我想使用XMLEncoder将JTable保存在xml文件中。 当我们将它保存到文件中时,获得exception: java.lang.InstantiationException: javax.swing.plaf.basic.BasicTableUI$Handler Continuing … java.lang.Exception: XMLEncoder: discarding statement ColorPropertyTable.removeMouseMotionListener(BasicTableUI$Handler); Continuing …

Java双缓冲

我正在研究一个项目,我已经尽可能多地阅读了java中的双缓冲。 我想要做的是添加一个组件或面板或其他东西到我的JFrame,其中包含要绘制的双缓冲表面。 我希望尽可能使用硬件加速,否则使用常规软件渲染器。 到目前为止我的代码看起来像这样: public class JFrameGame extends Game { protected final JFrame frame; protected final GamePanel panel; protected Graphics2D g2; public class GamePanel extends JPanel { public GamePanel() { super(true); } @Override public void paintComponent(Graphics g) { g2 = (Graphics2D)g; g2.clearRect(0, 0, getWidth(), getHeight()); } } public JFrameGame() { super(); gameLoop = new FixedGameLoop(); […]

何时在Java中使用exception(示例)

我知道这会是不好的做法,虽然我知道我无法解释原因。 int [] intArr = … … try{ int i = 0; while(true){ System.out.println(intArr[i++]); } }catch(ArrayIndexOutOfBoundsException e){} 我认为你只应该对不应该发生的事情使用例外。 我问这个问题是因为我认为我有时会使用exception错误。 如果你的编程运行一个标准的情况应该抛出exception? 这似乎是相关的: 防止exception与捕获Java中的exception

Maven多模块项目找不到兄弟模块

我似乎无法让Maven在多模块项目中找到兄弟模块。 我在所有模块中运行mvn clean install 。 这是设置: Product +– MagniCompCommon +– Model Model项目将MagniCompCommon作为依赖项。 当我在Model运行mvn clean compile时,我得到: [INFO] Scanning for projects… [INFO] [INFO] ———————————————————————— [INFO] Building Model 1.0 [INFO] ———————————————————————— [WARNING] The POM for com.magnicomp:MagniCompCommon:jar:1.0 is missing, no dependency information available [INFO] ———————————————————————— [INFO] BUILD FAILURE [INFO] ———————————————————————— [INFO] Total time: 0.585 s [INFO] Finished at: 2015-10-14T10:09:04-07:00 […]