Tag: awt

如何将JTextfield居中

我在程序中居中使用JTexfield时遇到了麻烦。文本字段似乎与JButton不对齐。 我尝试过使用x.setHoriontalAlignment(JTextfield.CENTER); 但无济于事。 有任何想法吗? import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.JPanel; import java.awt.Container; import java.awt.GridLayout; import java.awt.GridBagLayout; public class WidgetProject implements ActionListener { //class constants private static final Color BUTTON_COLOUR1 = Color.WHITE; private static final int BUTTON_HEIGHT = 75; private static final int BUTTON_WIDTH […]

从Java中的TTF文件加载一些TrueType字体会导致FontFormatException:找不到字体名称

我试图从我的系统上的TTF文件创建一个java.awt.Font实例,但只有一些字体能够加载而不会出错。 下面的代码是我在网上找到的一些测试代码。 在我的系统上运行时,它能够成功加载285种字体(例如Arial.ttf),但是在83种字体上失败(例如AmericanTypewriter.ttf)。 所有错误都是FontFormatException: Font name not foundformsFontFormatException: Font name not found没有嵌入原因的FontFormatException: Font name not found 。 java.awt.Font和格式兼容性是否存在已知问题? 经过谷歌搜索后我找不到任何东西。 public static void main(String[] args) { String rootPath = “/Library/Fonts”; File root = new File(rootPath); if (root.canRead()) { String[] fontFiles = root.list(); Font font = null; for (String fontFile : fontFiles) { try { System.out.println(fontFile); font […]

图像转换会产生红色图像吗?

我试图通过水平翻转并调整图像大小来变换图像。 问题在于,当转换完成时,图片的颜色都很奇怪,它已经变成了红色调。 是否有可能以某种方式解决这个问题,我想我在某处看到它可能是AWT库中的一些错误,但我不确定? 这是代码: import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class LocalImageSizeFlip { public static void main(String[] args) { BufferedImage img = null; try { img = ImageIO.read(new File(“C:\\picture.jpg”)); AffineTransform tx = AffineTransform.getScaleInstance(1, -1); tx.translate(0, -img.getHeight(null)); AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); img = op.filter(img, null); […]

用Java保留屏幕边缘

如何创建一个窗口(如java.awt.Frame , javax.swing.JFrame , java.awt.Dialog , javax.swing.JDialog等)保留屏幕边缘,如dock,任务栏, Trillian,或Microsoft OneNote可以吗? 我的目标是尽可能只使用标准的JDK库。

捕获javax.swing应用程序中的exception

我正在使用javax.swing来创建一个aplication,它从XML Schema生成表单(使用JAXFront库),并将用户填充的数据存储到XML文档中。 我在需要它的时候放了try-catch-finally块,但是当主线程结束时(AWT线程仍然在运行),我遇到了一些问题。 我有两个主要工作的课程和其他对这个问题不重要的课程: 主类 :它具有以下结构。 初始化应用程序并运行主框架 public class Main { public static void main(String[] args) { readArgs(); // An INI file with the app config Model model = initializeElements(args); // My model class try { MyFrame mfr = new MyFrame(title,model); mfr.visualize(); // Assembling view and setting visible } catch( Excepion e ) { doCleanUp(); […]

KeyListener事件显然没有在java applet中触发

我刚刚开始学习编程applet和java GUI,我试图制作一个简单的游戏。 目前,我有主要类(游戏)和玩家类(玩家)我让玩家绘制到屏幕上,但我正在努力让关键事件发挥作用,任何帮助赞赏! 玩家图像显示完美,但是当我完全按下按键时位置不会改变。 编辑:为播放器发布错误代码,更新 Game.java: public class Game extends Applet { Player player; @Override public void init() { player = new Player(this); this.setSize(800, 600); addKeyListener(player); } @Override public void paint(Graphics g) { player.paint(g); } } Player.java: public class Player implements KeyListener { Game game; Image image; int x; int y; public Player(Game game) { […]

Java中字符串长度(以像素为单位

有没有办法计算字符串的长度(以像素为单位)给定某个java.awt.Font对象,它不使用任何GUI组件?

Java(本机)打印对话框 – 更改图标

我使用PrinterJob.printDialog()让用户选择打印机并更改各种打印设置。 但是,对话框始终使用标准Java coffeecup图标显示,而不是主窗口(JFrame)中的图标。 如何更改该对话框的图标? 我正在使用以下代码: PrinterJob pj = PrinterJob.getPrinterJob(); pj.printDialog(); //如何更改此处显示的对话框的图标 … //从对话框中处理选择 通常,JDialog从“父”JFrameinheritance图标,但在这种情况下,我无法传递或指定该对话框的父窗口 我正在使用Java6

为什么我必须调用GraphicsEnvorinment.registerFont(),即使我的文件是从文件创建的?

我正在开发一个使用JFreeChart渲染图表的Web应用程序。 但是,当服务器没有安装任何中文字体时,即使我设置了字体,JFreeChart也不会显示中文字符。 然后我写了一个小的测试代码,发现在绘制图表之前添加这行代码可以解决问题。 GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(font); 所以我的问题是 – 即使我从File创建我的字体,为什么我必须将字体注册到JVM? 意味着JFreeChart的剂量不使用我直接设置的字体? 当我将程序部署到服务器时,即使我添加了这行代码,它也不会显示中文字符。 如何使它始终使用我设置的字体,以便在所有环境中正确显示字符? 我知道我可以在$JAVA_HOME/jre/lib创建一个fallback目录并将我的字体放入其中。 但这并不能解释为什么JFreeChart无法显示我设置的字体。 UPDATE 我很确定字体加载正确,因此当我将程序部署到Tomcat时,剂量registerFont()返回true。 更新2 根据JAVA 2D FAQ ,现在我意识到我必须调用registerFont()才能将我自己的字体“安装”到JVM中,我的字体将通过Font构造函数提供。 从Java SE 6开始,有一个方法:GraphicsEnvironment.registerFont(),它使您能够为Font构造函数提供“已创建”字体,并通过Font枚举API列出。 Font.createFont()和这个方法相结合,提供了一种方法,将Font“安装”到正在运行的JRE中,因此它就像O / S安装的字体一样可用。 但是,此字体不会在JRE调用中持续存在。 但是,由于我已经创建/派生自createFont() Font实例,为什么选择我的程序仍需要创建其他Font ? 以下是我使用的代码,它只是输出PNG格式的图表。 如果你想运行代码,你应该改变输出位置和字体以满足你的需要, 这里是我在代码中使用的中文字体的SourceForge链接 。 import java.awt.Font; import java.awt.GraphicsEnvironment; import java.io.File; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.StandardChartTheme; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; public class Problem { […]

如何生成多个圆形形状并为框架下方的形状设置动画

单击框架面板时,我无法生成多个椭圆形状。 我想要的是它会产生许多椭圆形状,这些形状会向下移动。 其中一个要求是使用两个multithreading。 但是在我的情况下,我创建的程序是,它只生成一个椭圆形状,并且位置随机变化。 任何人都可以帮我一个。 package ovalrandomcolors; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.List; import java.awt.Shape; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Ellipse2D; import java.util.ArrayList; import java.util.Collections; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class OvalRandomColors extends JPanel{ private int ovalX = 50; private int ovalY =50; private int […]