Tag: awt

ImageIO保存回原始大小

我一直在寻找互联网的一些解决方案,但我仍然没有找到我的问题的答案。 我一直在工作或做一个程序,从我的PC上获取一个图像文件,然后将使用Java Graphics编辑添加一些文本/对象/等。 之后, Java ImageIO将保存新修改的图像。 到目前为止,我能够做得很好,但我对图像的大小有疑问。 原始图像和修改后的图像尺寸不同。 原版是2×3英寸的图像,而修改后的版本据说有2×3英寸太可悲地得到了8×14英寸。 所以,它比原来的更大。 什么是解决方案/代码可以为我提供2×3英寸图像的输出,仍然具有“优质”? 更新: 所以,这是我使用的代码。 public Picture(String filename) { try { File file = new File(“originalpic.jpg”); image = ImageIO.read(file); width = image.getWidth(); } catch (IOException e) { throw new RuntimeException(“Could not open file: ” + filename); } } private void write(int id) { try { ImageIO.write(image, “jpg”, […]

如何使主GUI线程“等待”,直到单独的弹出窗口消失

我有一个从主GUI线程调用的对象,并显示一个单独的JFrame几秒钟然后消失(使用一个计时器)。 现在我想让主GUI线程等到弹出的JFrame窗口消失。 例如,在主GUI代码上: // initiate the object and show the pop-up JFrame DisappearingJFrame djf = new DisappearingJFrame (); djf.show (); // now the main GUI thread should wait // and after the pop-up JFrame disappears, the rest of the code is then executed … … 任何建议都会受到欢迎。 谢谢。

围绕它的中心旋转图片

是否有一种简单的方法可以围绕它的中心旋转图片? 我首先使用了AffineTransformOp 。 看起来很简单,需要找到一个矩阵的正确参数应该在一个漂亮而整洁的谷歌会话中完成。 所以我认为… 我的结果是这样的: public class RotateOp implements BufferedImageOp { private double angle; AffineTransformOp transform; public RotateOp(double angle) { this.angle = angle; double rads = Math.toRadians(angle); double sin = Math.sin(rads); double cos = Math.cos(rads); // how to use the last 2 parameters? transform = new AffineTransformOp(new AffineTransform(cos, sin, -sin, cos, 0, 0), AffineTransformOp.TYPE_BILINEAR); […]

如何在现有的JfreeChart上绘制蜘蛛图

我有一个jfree图表,每次运行代码时都可以生成。 现在我想在同一个图表上覆盖更多的蜘蛛图。 请帮我怎么做 在此之上,我需要使用jfree添加一个蜘蛛图表。 这是我做这个图表的代码。 package com.rectrix.exide.pdfbox; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Paint; import java.awt.PaintContext; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; import java.awt.image.ColorModel; import javax.swing.JPanel; import org.jfree.chart.ChartPanel; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.labels.StandardCategoryToolTipGenerator; import org.jfree.chart.plot.SpiderWebPlot; import org.jfree.chart.title.LegendTitle; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.*; […]

将字体导入GUI

我试图更改我的GUI的字体,除了基本的5,摇摆似乎随附。 如何导入字体并在我的代码中实际使用它们?

哪个是此设计的更好的顶级容器,JFrame与Jpanels,或JDesktop与JInternalFrames

我是Swing和AWT的初学者,我正在寻找使用Netbeans构建GUI。 我的GUI需要三个区域,我目前正在考虑将其作为JFrame上的JPanels。 我需要一个“绘图”面板,它将监听鼠标输入并绘制Java2D形状。 绘图面板将固定在左上角。 另外两个区域是“属性”滚动窗格和“控制器”滚动窗格。 控制器窗格将确定将通过按钮显示哪些绘制元素,属性滚动窗格将显示有关在绘图窗格中单击的任何形状对象的详细信息(端点,颜色等)。 绘图区域的典型用例是绘图区域中的第一次点击将是形状的第一组坐标,IE:一条线。 该点击将被捕获为point2d对象。 第二次单击将是第二个point2D对象,并且将在两者之间构建一条线。 控制器区域将具有“圆圈”,“线”,“椭圆”等按钮。根据单击的控制器按钮,将仅在绘图区域中绘制该类型的形状。 控制器和属性滚动窗格将不可移动,它们将分别锁定并可调整到GUI的底部和右侧。 作为初学者,我正在努力使用最好的组件。 我一直在阅读JDesktop和JInternalFrame,但似乎我并不真的需要这一切。 一个简单的JFrame有三个JPanel就足够了吧? 更具体地说,我认为我需要一个顶级JFrame,一个JPanel用于绘图框架和两个JScrollPanels。 我需要在绘图窗格中使用鼠标监听器来捕获每次单击的坐标,以及控制窗格中每个按钮的监听器。 我可以在JPanel上放置一个鼠标监听器,并为其绘制Java2D形状,还是需要在JPanel内部使用不同的(更好的?)容器来绘制它?

如何使用鼠标拖动事件在Java applet上绘制矩形

我正在使用java。 我想基于mousedrag事件绘制矩形。 如果用户拖动鼠标,则applet上的矩形应根据当前鼠标坐标增加或减少。 我有以下代码。 在下面的代码中,我正在使用[b] SelectionArea [/ b]类,它扩展了我正在执行绘图操作的canvas。 我在这个类中使用[b] image [/ b]变量进行双缓冲以减少闪烁并保存applet的先前状态(即绘制applet的内容) 但是如果我绘制第一个矩形,代码工作正常。 如果我开始绘制第二个矩形,则先前绘制的矩形正在消失。 我希望先前绘制的矩形在屏幕上 任何人都可以告诉我如何解决这个问题。 import java.awt.*; import java.applet.Applet; import java.awt.event.*; /* * This displays a framed area. When the user drags within * the area, this program displays a rectangle extending from * where the user first pressed the mouse button to the […]

在AWT组件上添加透明JPanel以进行绘制

我遇到了一个问题:在我的Java应用程序中,我有一个AWT组件(无法更改那个),它会流式传输并显示一个avi文件。 现在我想借鉴这部电影,并考虑将透明的JPanel放在它上面,然后画上那部电影。 这不起作用,因为我看到avi-stream或绘制的线条,但不是两者。 我读过AWT不支持组件透明度的地方 – 但是面板是一个能够这样做的JPanel。 有人可以帮助我这个 – 请提前感谢。

在java中打印HTML文件

我正在尝试打印我的程序生成的HTML文件,但它不起作用。 在Ubuntu上,“。isSupported(Desktop.Action.PRINT)”返回false,即使我安装了gnome库,并且在Windows 7上,java抛出以下exception: java.io.IOException: Failed to print file:/C:/Users/user/Documents/document.html. Error message: Unspecified error 然后是堆栈跟踪。 下面是代码,我正在使用java.awt.Desktop。 File doc = DocumentComposer.writeDocument(new File(System.getProperty(“user.dir”) + File.separator + “docs” + File.separator + docName + “.html”), case, data); if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.PRINT)) { desktop.print(doc); } else printError(); } else printError(); 任何forms的帮助将非常感激:)。

我正在尝试使用线程在applet中移动一个球,但它没有移动

我正在尝试使用线程在applet中移动一个球,但它没有移动。 任何人都可以帮助我作为applet的新手并继续进行游戏开发。这里的参考是我的代码 public class ballGame extends JApplet implements Runnable { int x_pos=50; int y_pos=100; int rad=10; Thread t; public void start() { super.start(); t=new Thread(“t”); t.start(); } public void paint(Graphics g) { super.paint(g); g.setColor(Color.red); setBackground(Color.BLACK); g.drawOval(x_pos,y_pos,2*rad,2*rad); while(true) { x_pos++; //validate(); repaint(); try { Thread.sleep(100); } catch(Exception e) { e.printStackTrace(); } }//end of while }//end of […]