Tag: awt

将AWT应用程序转换为SWT / JFace

我目前正在考虑将一个中小型项目从AWT转换为SWT,尽管Swing还没有完全脱离图片。 我正在考虑将主窗口转换为SWT_AWT桥接对象,但我不知道这个工作的语义如何。 之后,我计划更新对话框的对话框,但不一定在一个版本中。 这可能吗? 有人做了这样的转换,可以给我一些提示吗? 那里甚至可能有教程吗? 甚至可能有一个工具可以自动化部分内容吗? 我试过谷歌搜索,但无济于事。 更新:另外一件事是:目前,这是一个netbeans项目。 可能有所帮助,我不知道。

使用PS文件在Java中打印

我有一个生成的post脚本文件,并希望使用它进行打印。 如何使用javax print API或AWT在java中实现。 可能吗?

编程创建形状并在控制台上显示它们

我得到了如下的小作业。 能否请您详细说明如何实现这一点 编写一个简单的结构化程序和简单的oo程序,实现显示形状function。 你的程序应该简单地打印(控制台)数字,如果形状,然后要求每个形状显示自己,这也将导致生成一行输出到控制台,每个形状一个。 对于主程序来说,在对该集合进行排序和显示形状之前创建一组形状是完全可以的。 你的程序应该支持圆形,三角形和正方形,但应该使用多态,这样主程序就不知道它正在处理的形状类型,而是统一处理形状 我创建了一个程序来创建如下所示的形状,但我不确定如何创建所提到的形状并将它们存储在集合中并迭代以在控制台上显示这些形状。 我被告知不要使用数据库来存储形状 import java.awt.Color; import java.awt.Graphics; import javax.swing.JApplet; public class DrawShapes extends JApplet { public void paint(Graphics g) { g.setColor(Color.RED); // drawing string g.drawString(“Hello World!”, 100, 100); // drawing rectangle g.draw3DRect(120, 120, 120, 120, true); g.setColor(Color.blue); g.fill3DRect(120, 120, 120, 120, true); // drawing circle g.drawOval(240, 240, 120, 120); g.setColor(Color.CYAN); […]

在Java中从Font对象创建一个Shape对象

我有一个字体对象和一个字符串。 我想返回一个Shape对象,它是String的表示forms。 我有一大堆其他类将显示String并处理它。 当我没有 graphics / graphics2d对象时,我无法弄清楚如何做到这一点。 任何帮助? 我在网上搜索但很难找到有用的链接。 public class SpecializationOfTester extends ParentTester { private String str; private Font font; public SpecializationOfTester(String str, Font font) { this.font = font; this.str = str; } public Shape getShape() { Shape s; // // return s; } } 谢谢

如何制作圆角矩形JTextField?

我想制作一个圆形矩形JTextField。 我写了一个AbstractBorder子类来实现它。但是我遇到了一些问题。 我的要求是: 我得到的是: 我的代码是: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.Graphics; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.AbstractBorder; import javax.swing.border.EmptyBorder; public class JTextFieldTest { JTextField textField; boolean activate = false; public void createUI(){ JFrame frame = new JFrame(“Test […]

Java swing 1.6 Textinput就像firefox吧

我想创建一个看起来像firefox地址栏的textwidget /组件。 我的意思是一个Textfield,它允许我在场内放置小按钮(例如取消/重装/ ……) 我尝试通过创建自定义布局管理器来自定义JLayeredPane,该管理器最大化Textfield,并将其余部分从右到左放置。 我的问题是,这给了绘画问题,我不会总是看到我在文本字段中添加的项目。 这可能与Jython有关,我尝试将java.lang.Integer(1)给JLayeredPane.add 。 然而,层的排序与文档所说的完全相反。 为了实现这个目的,我派生了我自己的JLayeredPane类并重新定义了paint来调用paintComponents ,而paintComponents又遍历所有组件并调用它们的paint方法,从文本框开始,其余部分。 但是我并不总是立即得到更新,这意味着按钮被隐藏/仅部分显示,我无法与按钮交互。 我有什么可以在屏幕上看到更新(它隐藏在缓冲区?)) 我怎样才能使它与按钮交互? 如何缩短Texxtfield,以便文本在到达Textfield的末尾之前开始滚动到前面,这样文本就不会被按钮隐藏? 我仍然希望Textfields区域在按钮下方扩展 编辑 :在我使窗口变小之后,按钮仅显示在正确的位置,之后它也是可点击的 edit2 :我自由地将答案归结为此,隐藏了很多按钮代码/不必要的东西 import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.*; public class playground { private Icon errorIcon = UIManager.getIcon(“OptionPane.errorIcon”); private Icon infoIcon = UIManager.getIcon(“OptionPane.informationIcon”); private Icon warnIcon = UIManager.getIcon(“OptionPane.warningIcon”); public playground() { JPanel panel = new JPanel(); […]

需要FileDialog和Java中的文件类型filter

我有一个带有按钮/文本字段的JDialog供用户选择文件。 这是代码: FileDialog chooser = new FileDialog(this, “Save As”, FileDialog.SAVE ); String startDir = saveAsField.getText().substring( 0, saveAsField.getText().lastIndexOf(‘\\’) ); chooser.setDirectory(startDir); chooser.setVisible(true); String fileName = chooser.getFile(); 我的问题是,我没有看到所有文件filter,而是想提供自定义filter,例如Word文档或其他东西。 我使用setFilenameFilter()设置了一个自定义的FilenameFilter,但它似乎不起作用。 我注意到它在文档中说自定义filter在Windows中不起作用(这在Windows XP / Vista / 7中运行)。 这是我对filter的实现: chooser.setFilenameFilter( new geFilter() ); public class geFilter implements FilenameFilter { public boolean accept(File dir, String name) { return name.endsWith( “.doc” ) || […]

将JSplitPane与AWT组件一起使用

我有一个AWTcanvas,我无法将其转换为Swing组件(它来自VTK )。 我希望在JSplitPane中显示一些这些canvas。 我已经读到了在Java中混合重量和重量轻的组件,并且知道这是一个痛苦的屁股,但我没有选择。 如果我将AWTcanvas包装在JPanel中,然后将其放在拆分窗格上,则拆分窗格根本不起作用。 但是,如果我将AWTcanvas放在JPanel中,然后放在JScrollPane内部,然后在JSplitPane上放置那些滚动窗格,则拆分窗格会起作用,但AWTcanvas组件不会正确resize。 我失去了关于如何在移动JSplitPane的分隔符时使AWTcanvas组件正确resize。 我可以抓住分频器移动操作并在当时的AWTcanvas上操作,但我不知道该怎么做。 我已经尝试调用invalidate()然后validate()然后重绘(),但这不起作用。 有任何想法吗? 这是问题的一个例子 import javax.swing.*; import java.awt.*; public class SwingAWTError { public static void main(String[] args) { Canvas leftCanvas = new Canvas(); Canvas rightCanvas = new Canvas(); leftCanvas.setBackground(Color.RED); rightCanvas.setBackground(Color.BLUE); JPanel leftPanel = new JPanel(); JPanel rightPanel = new JPanel(); leftPanel.setLayout(new BorderLayout()); rightPanel.setLayout(new BorderLayout()); leftPanel.add(leftCanvas, BorderLayout.CENTER); rightPanel.add(rightCanvas, BorderLayout.CENTER); […]

如何配置Google AppEngine以使用矢量图形?

在使用Java8的AppEngine标准环境中尝试使用SVG时出现下一个错误。 当我尝试使用POI(如slide.draw(graphics2D)在XSLFSlide上绘制SVG或使用Batik将SVG转换为PNG时,我收到此错误。 似乎出现问题是因为fontconfig无法找到字体。 在debian发行版中,它通过安装libfontconfig1来解决。 如何在AppEngine上解决它? java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) at sun.awt.FontConfiguration.init(FontConfiguration.java:107) at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774) at sun.font.SunFontManager$2.run(SunFontManager.java:431) at java.security.AccessController.doPrivileged(Native Method) at sun.font.SunFontManager.(SunFontManager.java:376) at sun.awt.FcFontManager.(FcFontManager.java:35) at sun.awt.X11FontManager.(X11FontManager.java:57) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:443) at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83) at java.security.AccessController.doPrivileged(Native Method) at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) at java.awt.Font.getFont2D(Font.java:491) at java.awt.Font.canDisplay(Font.java:1980) at org.apache.poi.sl.draw.DrawTextParagraph.canDisplayUpTo(DrawTextParagraph.java:756) at org.apache.poi.sl.draw.DrawTextParagraph.getAttributedString(DrawTextParagraph.java:640) at org.apache.poi.sl.draw.DrawTextParagraph.breakText(DrawTextParagraph.java:248) at org.apache.poi.sl.draw.DrawTextShape.drawParagraphs(DrawTextShape.java:159) […]

Java字体大小从宽度

我正在寻找一种从宽度推断Java AWT字体大小的方法。 例如,我知道我想在100像素内写下’hello world’。 我知道我在Font.PLAIN样式中使用字体“Times”,我希望得到最适合我的100像素宽度的字体大小。 我知道我可以在一个循环中计算它(类似于while(font.getSize() < panel.getWidth() ),但说实话我并不觉得它非常优雅。