Tag: awt

Java面板双缓冲

想知道是否有人能指出我正确的指挥,我已经开发了一个乒乓球游戏,它需要双重缓冲由于闪烁。 我在这里尝试了一些post尝试使它工作,但我仍然是一个摇摆awt足够的初学者,任何帮助将是惊人的谢谢。 public class PongPanel extends JPanel implements Runnable { private int screenWidth = 500; private int screenHeight = 300; private boolean isPaused = false; private boolean isGameOver = false; private int playToPoints = 10; private Padel player1,player2; private Ball ball; private Thread gameThread; private Image dbImage; private Graphics dbg; public PongPanel() { setPreferredSize(new Dimension(screenWidth,screenHeight)); […]

从JPanel获取高分辨率图像

假设我有一个JPanel Called panel ,并且已经有了paintComponent ,我画了一些像矩形的形状。 我可以从我的面板中获取缓冲图像,如: int w = panel.getWidth(); int h = panel.getHeight(); BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); panel.paint(g); ImageIO.write(bi1, “png”, new File(“test.png”)); 如何从我的panel获取高分辨率图像? (当前输出图像仅基于我的显示器中JPanel的分辨率) 我尝试过AffineTransform ,但它不能满足我的需要。 请注意,我已经在我的panel绘制了所有内容,并且不想在paintComponent方法中更改我的绘图。 我真的在寻找一种实用的方法,并感谢任何帮助。

使线程在EDT的非EDT(事件调度线程)线程上运行

我有一个在EDT上运行的方法,并且我想让它在新的(非EDT)线程上执行某些操作。 我目前的代码如下: @Override public void actionPerformed(ActionEvent arg0) { //gathering parameters from GUI //below code I want to run in new Thread and then kill this thread/(close the JFrame) new GameInitializer(userName, player, Constants.BLIND_STRUCTURE_FILES.get(blindStructure), handState); }

使用PrinterJob打印图像(Graphics2D)

有没有办法我可以在Java中安装PrinterJob而不实际打印到打印机,以便我可以获取每个页面的图形对象? 我尝试将PrintService设置为null,但Java不允许这样做。 这样我就可以为文档检索准确的打印预览,而无需在不同的上下文中从头开始重建PrinterJobs函数。 这是我程序中打印function的代码: public int print(Graphics graphics, PageFormat pageFormat, int page) throws PrinterException { deepCopyString = string; FontMetrics metrics = graphics.getFontMetrics(font); int lineHeight = metrics.getHeight(); arrangePage(graphics, pageFormat, metrics); if (page > pageBreaks.length){ return NO_SUCH_PAGE; } Graphics2D g = (Graphics2D) graphics; g.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); g.setFont(font); int begin = (page == 0) ? 0 : pageBreaks[page-1]; int […]

如何使用FileDialog?

我创建了一个界面,我想添加一个允许用户打开文件的function。 我正在使用AWT。 我不明白如何使用FileDialog。 你能给我一个例子或一个很好的链接来解释这个吗?

将JPanel导出为矢量图形

我想将我的JPanel中的图像导出到矢量图形文件中,以便以高于屏幕的分辨率进行编辑和打印。 基本上我希望使用目标图形调用其paint()函数,该图形将绘图命令保存到矢量图形文件中。 这样做的好方法是什么? 建议使用哪些库? 哪种矢量格式最好,为什么?

使用AWTEventListener的全局事件监听器以及如何从中提取MouseEvent

以下问题基于以下信息。 向下滚动以查看实际问题 – 它特指控制台输出。 我已经删除了所有内容,并提供了一个简单的程序来重现以下输出: import java.awt.AWTEvent; import java.awt.Toolkit; import java.awt.event.AWTEventListener; import javax.swing.JFrame; public class Main { static Toolkit tk = Toolkit.getDefaultToolkit(); static long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK + AWTEvent.KEY_EVENT_MASK; public static void main(String[] args) { tk.addAWTEventListener(new AWTEventListener() { @Override public void eventDispatched(AWTEvent e) { System.out.println(e.getID() + “, ” + e); } }, eventMask); […]

为什么我的图标处理代码会抛出NullPointerException?

我为我的按钮添加了一个图像,但是当我运行该帧时,会抛出这个exception。为什么?请帮助我。 init: deps-jar: compile-single: run-single: Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException at javax.swing.ImageIcon.(ImageIcon.java:138) at ClientGUI.IdAndPasswordFrame.initComponents(IdAndPasswordFrame.java:91) at ClientGUI.IdAndPasswordFrame.(IdAndPasswordFrame.java:22) at ClientGUI.IdAndPasswordFrame$4.run(IdAndPasswordFrame.java:200) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) BUILD SUCCESSFUL (total time: 1 second) 第138行: public ImageIcon (URL location) { this(location, location.toExternalForm()); } line91: jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource(“/Images/yahoo_1.gif”))); // NOI18N 我使用这个糟糕的检查(Peter […]

在Java中剪切,复制和粘贴的最佳方法是什么?

我使用Swing创建了一个带有文本区域的应用程序(JTextArea)。 我想创建一个“编辑”菜单,其中包含从文本区域剪切和复制文本的选项,以及将剪贴板中的文本粘贴到文本区域。 我已经看到了几种方法,但我想知道最好的方法是什么。 我该如何实现剪切/复制/粘贴?

如何检测JFrame窗口最小化和最大化事件?

有没有办法让JFrame对象的事件监听器检测用户何时单击窗口最大化或最小化按钮? 我使用JFrame对象如下: JFrame frame = new JFrame(“Frame”);