Tag: awt

用鼠标拖动创建矩形,而不是绘制

我想用整个屏幕创建一个矩形。 通过使用整个屏幕,我的意思是这样的: 首先,是否可以在Java中使用整个屏幕? 第二,我该怎么做呢? 另一件事,我不想绘制一个实际的矩形,我想创建on,就像在新的java.awt.Rectangle 。

如何在Java中捕获AWT线程exception?

我们想在我们的应用程序日志中跟踪这些exception – 默认情况下,Java只是将它们输出到控制台。

有没有一种比较BufferedImage实例的简单方法?

我正在研究Java应用程序的一部分,该应用程序将图像作为字节数组,将其读入java.awt.image.BufferedImage实例并将其传递给第三方库进行处理。 对于unit testing,我想拍摄一张图像(来自磁盘上的文件)并声明它等于代码处理过的相同图像。 我期望的 BufferedImage是使用ImageIO.read(URL)从磁盘上的PNG文件中读取的。 我的测试代码将同一个文件读入BufferedImage并将其作为PNG写入字节数组,以提供给被测系统。 当被测系统将字节数组写入新的BufferedImage我想断言两个图像以有意义的方式相等。 使用equals() (inheritance自Object )不起作用(当然)。 比较BufferedImage.toString()值也不起作用,因为输出字符串包含对象引用信息。 有人知道任何捷径吗? 我不想在大型应用程序的一小部分中引入第三方库进行单个unit testing。

关闭子框架(Java + iReport)时如何防止父框架关闭?

基本上我想从我的主应用程序上的按钮调用JasperViewer 。 我用这个 private void btnExportActionPerformed(java.awt.event.ActionEvent evt) { try { JasperPrint printer = JasperFillManager.fillReport(getClass().getResourceAsStream(“reportRecharge.jasper”), params, new JREmptyDataSource()); JasperViewer jv = new JasperViewer(printer); jv.setVisible(true); } catch (JRException ex) { ex.printStackTrace(); } } 当JasperViewer出现并关闭它时, main frame / parent main frame也关闭。 我尝试添加jv.setDefaultCloseOperation(HIDE_ON_CLOSE); 但它也没有用。 怎么弄呢? 任何帮助,将不胜感激。

如何将图标转换为图像

我正在尝试使用以下代码将Icon( javax.swing.Icon )转换为Image( java.awt.Image ): private Image iconToImage(Icon icon) { if(icon instanceof ImageIcon) { return ((ImageIcon) icon).getImage(); } else { BufferedImage image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB); icon.paintIcon(null, image.getGraphics(), 0, 0); return image; } } 问题是, paintIcon函数会在image.getGraphics()上抛出NullPointerException 。 对于记录, icon值是默认的CheckBox图标(通过UIManager.getIcon(“CheckBox.icon”) ) 以下是抛出exception的详细信息: Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException at com.sun.java.swing.plaf.windows.WindowsIconFactory$CheckBoxIcon.paintIcon(WindowsIconFactory.java:306) at utils.WarningRenderer.iconToImage(WarningRenderer.java:50) at utils.WarningRenderer.(WarningRenderer.java:38) at deliveryexpress.DeliveryExpressView.setWarnings(DeliveryExpressView.java:278) […]

如何以编程方式生成按键事件?

java程序应该做的是它应该在某些条件下触发键盘按下而无需人按键盘键。 因此,任何需要键盘输入的窗口和焦点运行的程序都可以在没有人实际按下键盘的情况下获得输入。 我在这里找到了这些相关问题: 问题1 , 问题2 我想知道在Java中是否有任何方法可以做到这一点。

在Swing JFrame上添加WebView控件

我正在研究与JavaFX控件混合的Swing应用程序。 我创建了一个JavaFX控件( WebView )来浏览HTML文件。 但我想知道,如何在Swing JFrame的容器上添加此Web视图控件?

使用Java的ImageIO将像素数组转换为Image对象?

我目前正在使用以下代码将像素值数组(最初使用java.awt.image.PixelGrabber对象创建)转换为Image对象: public Image getImageFromArray(int[] pixels, int width, int height) { MemoryImageSource mis = new MemoryImageSource(width, height, pixels, 0, width); Toolkit tk = Toolkit.getDefaultToolkit(); return tk.createImage(mis); } 是否可以使用ImageIO软件包中的类来实现相同的结果,因此我不必使用AWT Toolkit? Toolkit.getDefaultToolkit()似乎不是100%可靠,有时会抛出一个AWTError,而ImageIO类应该总是可用,这就是为什么我有兴趣改变我的方法。

使用Canvas在Java中绘图

我想用Java的Canvas画画,但不能让它工作,因为我不知道我在做什么。 这是我的简单代码: import javax.swing.JFrame; import java.awt.Canvas; import java.awt.Graphics; import java.awt.Color; public class Program { public static void main(String[] args) { JFrame frmMain = new JFrame(); frmMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frmMain.setSize(400, 400); Canvas cnvs = new Canvas(); cnvs.setSize(400, 400); frmMain.add(cnvs); frmMain.setVisible(true); Graphics g = cnvs.getGraphics(); g.setColor(new Color(255, 0, 0)); g.drawString(“Hello”, 200, 200); } } 窗口上没有任何内容。 我觉得Canvas是纸,而Graphics是我的铅笔,我错了吗? 它是如何工作的?

KeyListener无法正常工作

出于某种原因,我的KeyListener只是没有响应KeyPressed事件。 如果重要的话,我在Ubuntu 12.04上。 每按一次键就应该打印“按键”,但不是。 这是代码: import java.awt.event.*; import javax.swing.*; import java.awt.Graphics; public class DisplayPanel extends JPanel { private Tile[][] tiles; private Creature[] creatures; private Dungeon dungeon; private Player player; public DisplayPanel(Dungeon dungeon, Tile[][] tiles, Creature[] creatures, Player player) { this.tiles = tiles; this.creatures = creatures; this.dungeon = dungeon; this.player = player; addKeyListener(new DungeonKeyListener()); requestFocus(); } […]