Tag: awt

“还没有创建缓冲区”……同时创建缓冲区

我(我认为是)JFrame的直接BufferStrategy。 它是这样创建的: // Buffer container.createBufferStrategy(2); strategy = container.getBufferStrategy(); 但是,偶尔我会收到以下错误(指向前一个片段的第一行作为违规项目): java.lang.IllegalStateException:尚未创建缓冲区 这个错误很奇怪,因为它来来往往 – 有时会触发,有时不会触发。 我怀疑这意味着它是一个线程问题。 有没有人对这里可能发生的事情有任何指示? 我有点不知所措,因为我已经在尝试做Java希望我做的事情了! 编辑:完整跟踪: Exception in thread “main” java.lang.IllegalStateException: Buffers have not been created at sun.awt.windows.WComponentPeer.getBackBuffer(WComponentPeer.java:877) at java.awt.Component$FlipBufferStrategy.getBackBuffer(Component.java:3815) at java.awt.Component$FlipBufferStrategy.updateInternalBuffers(Component.java:3800) at java.awt.Component$FlipBufferStrategy.createBuffers(Component.java:3791) at java.awt.Component$FlipBufferStrategy.(Component.java:3730) at java.awt.Component$FlipSubRegionBufferStrategy.(Component.java:4253) at java.awt.Component.createBufferStrategy(Component.java:3612) at java.awt.Window.createBufferStrategy(Window.java:3015) at java.awt.Component.createBufferStrategy(Component.java:3536) at java.awt.Window.createBufferStrategy(Window.java:2990)

使用Java在4 x 6纸张上打印1800 x 1200图像

我需要在4“x 6”纸张(也称为4r)上打印1800 x 1200像素,300 dpi图像 我试过了什么 我创建了一个PrintRequestAttributeSet来处理我的PrintableArea (4 x 6), Printer print DPI , Orientation 。 我在底部贴了一个MCVE。 问题 虽然代码有效,但我得到了一个具有以下属性的PageFormat (对于我的打印机): x= 12.0 y= 12.32 w= 276.0 h= 419.67 宽度和高度都少,因为我的打印机不支持Zero Margin 。 ( 这是我考虑过的。如果有人知道除此之外我可以强制零保证金的方式,请告诉我 ) 我提供的margin as 0 ,因为这些图像将通过支持零保证金的打印机打印(Photobooth打印机)。 aset.add(new MediaPrintableArea(0, 0, 4, 6, MediaPrintableArea.INCH)); 包括边距的可打印区域大约为4 x 6。 当我缩放图像以在可打印区域内打印时,会出现问题。 由于图像为1800 x 1200,因此它支持3:2的宽高比,这意味着可以创建图像以在4 x 6纸张上打印(旋转和缩放后)。 以供参考。 现在,由于PageFormat的pageWidth和pageHeight不能被ImageWidth和ImageHeight完全整除。 […]

创建Java消息对话框的最快方法(swing / awt / other)?

我正在创建一个Java应用程序,它将进行一些处理,然后需要显示一条消息以向用户提供反馈。 然而,它看起来非常缓慢 – 需要两秒钟才能返回。 我将源代码删除到明显的罪魁祸首,这里是使用的代码: package SwingPlay; import javax.swing.JFrame; public class Dialog { public static void main( String[] args ) { JFrame frame = new JFrame( “DialogDemo” ); } } 我正在从命令行执行此操作: java -classpath . SwingPlay.Dialog 正如你所看到的 – 我什么也没做,只是创建了一个JFrame,甚至没有显示它。 如果它是相关的,这是我的java -version输出: java version “1.6.0_11” Java(TM) SE Runtime Environment (build 1.6.0_11-b03) Java HotSpot(TM) Client VM (build 11.0-b16, […]

你如何模拟JTextField上的点击? 相当于JButton doClick()?

我正在开发一个Java项目,需要让一个按键模拟点击JTextField。 我正在寻找的是相当于JButton doClick()方法。 我试图让按键“enter”执行与单击JTextField完全相同的function。 不确定要提供的其他信息。 提前致谢。

如何在Java中更改图表Scale

我有一个图表,其中x轴显示时间,y轴显示我的数据。 我想通过为x轴选择不同的指标来更改比例。 例如秒,分和小时刻度。 默认值为秒。 因此,如果我选择分钟,图表应该更小并且更加弯曲。 任何想法? UI没有完成,但是你想假设有x和y轴。 参数度确定它应缩放到秒(度= 1),分钟(度= 60)或小时(度= 3600) private void drawLines(Graphics g, ArrayList points,int degree) throws Exception { if (points == null || points.isEmpty()) { throw new Exception(“No points found!!!”); } for (int i = 0; i < points.size() – 1; i++) { Point firstPoint = points.get(i); Point secondPoint = points.get(i + […]

Java Graphics:从Font构造FontMetrics,没有Graphics2D

已知 给定FontMetrics FontMetrics有一个受保护的构造函数。 题: 给定一个Font对象,是否有一种方法可以构建FontMetrics对象而无需通过Graphics2D.setFont , Graphics2D.getFontMetric() ? 上下文 我正在使用像渲染算法这样的TeX。 我需要计算* .pfb文件中各种字符的边界框等。 我可以从* .pfb文件构造一个Font对象。 我需要一个FontMetrics对象来获得上升,下降,宽度。 对于我来说,构建一个未使用的中间Graphics对象只是为了得到FontMetrics似乎非常难看。

Java:在ActionListener中使用图形组件

我有两个单独的类和驱动程序文件,在类文件中我创建了paint方法: public void paint(Graphics g){ g.drawLine(…… …. //along with all of my other draw commands } 在代码中,我创建了一个JButton,在这个按钮的动作监听器中,我不知道如何使用Graphics对象在JFrame中创建更多图形。 我应该向我的驱动程序添加一些内容以实现这一点,还是有办法在我的动作监听器中使用这些图形? 谢谢,任何帮助表示赞赏。

JAVA无法从另一个类中绘制到JFrame上

我知道这是我的错误。 我的问题是为什么这不起作用我错过了什么我可以称之为我把它作为一个方法而不是一个类所以我假设他们的第三类有问题? 第1类: package assignment.pkg1.java; import java.awt.Color; import javax.swing.JFrame; public class JVMVeiwer { /** * @param args the command line arguments */ public static void main(String[] args) { final int FRAME_WIDTH = 1000; // Frame Width final int FRAME_HEIGHT = 800; // Frame Height JFrame frame = new JFrame(); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); //Sets Frame Size frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); […]

java.awt.image.DataBufferByte无法强制转换为java.awt.image.DataBufferInt

我在使用JAVA进行编码时遇到了一些错误,我一直试图解决这个问题,同时也试图找到有相同问题的oterh ppl并修复它但没有任何工作…… 嗯..这是代码 package ca.vanzeben.game; import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.awt.image.DataBufferInt; import javax.swing.JFrame; public class Game extends Canvas implements Runnable { private static final long serialVerisionUID = 1L; public static final int WIDTH = 160; public static final int HEIGHT = WIDTH / 12*9; public […]

一个JFrame打开另一个

我有一个JFrame和JPanel, 其中包含一个带有actionlistener的Jsomethings 。 当用户单击一个对象时,我想打开另一个JFrame。 这是我做的: public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == rejectionbutton){ RejectApp ra = new RejectApp(); ra.main(null); } } (RejectApp调用一个新的JFrame。)因此,另一个JFrame在屏幕上打开,有更多选项。 它工作正常(到目前为止),但我想知道这个标准吗? 我的意思是调用这样的主要方法? 另一个问题是,不使用cardlayout(我不想使用),是处理多个面板的最好方法,做这种事情?