我正在做一个SWT项目,但是我将广泛使用Awt. Robot.createScreenCapture()
来生成BufferedImages。我将以这种方式生成数十万张图像。
问题是,SWT似乎无法显示BuffereImage,并且有自己的Image
类。我知道可以将BuffereImage转换为SWT的映像,但SWT的映像似乎需要手动处理,并且不像Swing的BuffereImage那样具有自动垃圾收集功能。
另外,我认为计算机要不断地从BuffereImage转换为Image需要时间/精力,这可能会减慢我的程序,这是不可接受的,因为它是一个时间关键型应用程序。
那么,有没有办法在SWTShell
上显示BuffereImage?(我可能会有一个Jpanel
显示每个图像的图像,所以我只需要一种方法将Jpanel显示到Shell
)
我尝试了SWT/AWT桥,如您的问题的评论中建议的那样,它的工作原理如预期的那样:
static BufferedImage bim;
static Frame frame;
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
final java.awt.Rectangle screenRect = new java.awt.Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
bim = new Robot().createScreenCapture(screenRect);
frame.repaint();
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setSize(200, 200);
Composite composite = new Composite(shell, SWT.EMBEDDED | SWT.NO_BACKGROUND);
frame = SWT_AWT.new_Frame(composite);
frame.setLayout(new BorderLayout());
frame.add(new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(bim, 0, 0, this);
}
}, BorderLayout.CENTER);
frame.setVisible(true);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
干杯
问题内容: 这类似于我昨天提出的问题,但更具体地针对该问题。向已经包含各种小部件的NetBeans项目中添加JFreeChart的正确方法是什么?我的updateChart()隐藏了整个JFrame。我想将JFreeChart添加到JFrame中。 更正的代码: 问题答案: 我的updateChart()隐藏了整个JFrame。 那是因为您要用免费图表中的面板替换框架的内容窗格。 我不知道您使用的
问题内容: 我想显示类似于java2s.com“创建惰性文件树”的文件树,但要包括实际的系统图标- 特别是对于文件夹。SWT似乎不提供此功能(Program API不支持文件夹),因此我提出了以下建议: 但是,应该透明的区域以黑色显示。我该如何工作,还是应该采用其他方法? 更新: 我认为原因完全不是为了透明。 现在,我填补与现在,这是一个可接受的解决方法。不过,我想在这里知道真正的解决方案… 问题
问题内容: Maven常见的调试技术是使用mvndependency:tree查看项目依赖关系图。 但是,此列表显示项目依赖关系,而不是每个插件的插件依赖关系树。有什么办法可以从项目中做到这一点吗? 问题答案: 通过mvn -X的输出将间接打印出信息。当前没有其他选择来获取Maven-Plugin的依赖项。 更新 您可以使用以下命令获取插件依赖项列表(依赖项插件中的resolve- plugin目
问题内容: 我正在做一个视图(使用Django的通用视图DeleteView)从模型中删除实例,但它会级联并从其他模型中删除实例: 我想要做的是像管理界面一样显示将要删除的相关项目的列表,例如: 问题答案: 你可以使用 Django 使用的类来确定要在级联中删除的对象。实例化它,然后调用它传递要删除的对象。它需要一个列表或查询集,因此,如果只有一个对象,只需将其放在列表中: instances_w
即使SWT表格为空,是否可以始终在表格中显示垂直滚动条?通过始终显示(可能已禁用)垂直滚动条,可以避免最后一列在使用列权重数据(ColumnWeightData)进行布局时部分隐藏。 我试图用SWT初始化表。V\u滚动或使用表格。getVerticalBar()。setVisible(true)-两者均未成功。 在ScrollableComposite中有一个方法设置总是显示滚动条。我要找的是表中
问题内容: 我有一个Foo类,它仅加载FXML并创建场景。 在FXML中,我将控制器设置为FooController() 然后添加一个MenuButton: 我尝试在FooController中设置menuButton: 但是,尽管为MenuButton设置了所有内容,但它并未在GUI中显示任何CheckMenuItems。 如何在FXML中定义的menuButton中加载这些项目? 问题答案: