问题标签 [awt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
16849 浏览

java - Swing 组件是轻量级的吗?

每当我读到 Swing 时,他们都会说它们是轻量级组件。所以我只是用谷歌搜索了 Swing,发现这意味着 Swing 不依赖于本地同行。这就是他们被称为“轻量级”的原因吗?我的意思是轻量级,我认为 Swing 组件占用的内存可能比 AWT 组件少。不是这样吗?

0 投票
2 回答
727 浏览

java - Java - AWT 从 1.4 到 1.5 的差异(在 Unix 和 Windows 上工作)

这是参考我的问题:java.awt.HeadlessException Applets not display

系统管理员提出了下一个问题。他们在问——

“为什么 java1.5 现在需要在 tomcat 中显式导出 DISPLAY,而 java1.4 则不需要?”

那么 java1.5 发生了什么变化导致它在没有显式导出显示的情况下抛出 java.awt.HeadlessException 呢?

小程序在 java1.5 中的工作方式有变化吗?Sun 是否改变了 java1.5 中 AWT 或 Swing 的内部工作?java1.4 能够看到在 Unix 上运行的 xvfb 库但 java1.5 在没有显式导出显示的情况下无法看到的原因是什么?

0 投票
4 回答
9947 浏览

java - Canvas 没有在 Java 中使用窗口调整大小?

我有一个带有 Canvas 的 jFrame。当我在 Windows XP/Vista 中运行我的程序并调整窗口大小时,画布会与窗口一起按比例调整大小。

但是,在 Ubuntu linux 中,当我编译相同的 java 应用程序并调整窗口大小时,Canvas 的大小保持不变。

在 Windows 和 Linux 中,我需要做什么才能使 Canvas 与我的窗口一起调整大小?与差异有什么关系?

主.java

BallCanvas.java


编辑:我的源代码被压缩在这里以防有人想看看:
http ://www.filedropper.com/ballbounce

我已经完成了 Dave Ray 的建议,但它仍然没有调整 Canvas 的大小?请记住,当我编译这个 java 程序并在 Windows 中运行它时,它可以很好地调整大小。只有在 linux 中它才会对我这样做。如果重要的话,我也在运行 Java 6 Sun 1.6.0.10 JVM。

替代文字 http://img158.imageshack.us/img158/7642/screenshotww0.png

也许我的画布正在通过我的BufferStrategy/Graphics不调整大小来调整大小?

编辑 2:从截图来看,它肯定设置为 CENTER:


解决

显然“画布”正在调整大小,但我用它的缓冲策略做了一些奇怪的事情,它不允许调整 IT 的大小。我修好了它。感谢大家!

0 投票
2 回答
6016 浏览

java - 不在事件调度线程上构造 Swing/AWT 小部件是否安全?

我一直在将Substance的外观和感觉集成到我的应用程序中,并遇到了一些关于其内部 EDT(事件调度线程)检查例程的问题。Substance 绝对拒绝在 EDT 之外构建 UI 类。我已经做了很多 Swing/AWT 并且我知道大部分关于 EDT 的规则。我使用 SwingWorker、SwingUtilties.invokeLater 来修改组件。我一直认为组件可以在 EDT 之外构建,但必须在EDT 上实现操作。换句话说,您可以在后台构造和设置默认值,但对 pack/setVisible 的调用必须是 EDT 以及任何后续调用来操作组件。

我问的原因是我有一个特别“强大”的窗口要构建,涉及许多小部件、状态和资源(很多图标)。之前,我在 SwingWorker 的背景方法上构建了窗口,并在 done 方法中使窗口可见。从来没有一个问题。切换到 Substance 后,内部 EDT 检查让我很头疼。

我已经能够重构代码来解决这个问题。我可以在 EDT 上进行构建,这不是一个好的解决方案,因为整个应用程序都会阻塞。我还可以进行更多重构,并尽我所能加载 EDT 之外的所有额外资源。

结束它......在事件调度线程上构建Swing/AWT 小部件是否安全?

0 投票
7 回答
15082 浏览

java - 假X11显示器?

我有一个使用 AWT 的 Java 程序,我想在无头系统上运行它。该程序的显示除了显示统计信息之外什么都不做。当程序完成时,它退出。显示器上没有用户交互。该程序创建一个我在构建系统中使用的输出文件。

有没有办法让 Java 程序在没有配置 X11 显示器的情况下运行?我可以强制 Java 运行程序而不尝试显示任何内容吗?我无权访问源代码(它只是 .jar 文件),所以我无法对源代码进行修改。

关于如何让它发挥作用的任何想法?

0 投票
5 回答
6039 浏览

java - 是否可以让 MouseMotionListener 监听所有系统鼠标运动事件?

我的样板听众:

很简单,但是为了监听系统范围的事件,我应该添加什么?我一直在研究诸如 GraphicsDevice 和 AccessibleContext 子类之类的东西——它们不直接提供 MouseMotionListeners 的添加,但我希望它们能给我一些关于如何实现它的想法。

编辑:这根本不是基于事件的,但我发现了这个:

实际上会在我的应用程序上下文之外返回鼠标位置,即使应用程序本身没有焦点也是如此。如果事件的值发生变化,有什么方法可以观察并调度事件?

0 投票
10 回答
11870 浏览

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

我正在创建一个 Java 应用程序,它将进行一些处理,然后需要显示一条消息以向用户提供反馈。

然而,它似乎非常慢 - 需要两秒钟以上才能返回。

我将源代码剥离到明显的罪魁祸首,这是使用的代码:

我从命令行执行这个:

正如你所看到的——我什么也没做,只是创建了一个 JFrame,甚至没有显示它。

如果它是相关的,这是我的java -version输出:

这是(当前)针对 Win XP SP2 运行的。


所以,第一个问题:为什么这么慢?

更重要的是,我只想立即显示一条简单的消息(GUI,而不是 cmdline)——任何人都可以提供一些代码来做到这一点吗?


更新:

一些背景知识可能会有所帮助:
我正在创建一个应用程序,它将有许多“头”(即不同的用户界面都使用相同的核心类来完成复杂的部分)。
我目前有一个可以正常工作的纯命令行头 - 立即响应。
我还将有一个带有常规点击 GUI 的标准应用程序,并且不要预见这一点会出现问题。
我目前正在处理的是这两者的混合体 - 它将从运行框(或类似的启动器)启动,可能带有参数,并且只需要有效地响应状态消息,可以用按键。

后一个是问题的重点。

虽然我不反对将我现有的命令行版本与 shell 脚本一起使用(尽管认为没有必要!),但现有的答案似乎表明事情对我来说并没有像其他人那样快 - 一个示例对我来说需要 1460 毫秒,而 70 毫秒 - 一个显着的差异。

0 投票
6 回答
2059 浏览

java - 用于 GUI 构建的 Java 的 AWT 或 Swing?

我需要为服务器监控过程编写一个相当简单的 GUI。它将有几个选项卡,这些选项卡导致日志拖尾、资源计数以及开始和顶部控制。这里没有什么花哨的。哪个 Java 框架,AWT 或 Swing,对于这么简单的事情更有意义。

0 投票
1 回答
1295 浏览

java - 在 AWT 中绘制半透​​明 .png

我正在尝试在电视信号上绘制一张 transparent.png 图像(因此在渲染之前进行混合有点过时了)。

当我绘制透明矩形时,我可以设置 SrcOver 并为我的背景颜色指定一个 alpha 并且它会起作用:

但现在我实际上正在尝试使用设置了透明度的 png 但这不起作用(它只是实心的)。

如果我设置 XOR 模式:

设置 SrcOver 后,整个图像变为半透明,而不仅仅是指定的点。此外,设置为“透明”的部分仍然可见。

任何人都可以指出使这项工作的神奇调用集吗?

(另外,swing 不可用——只是 java 1.4 的大部分)。

0 投票
3 回答
1186 浏览

java - Java AWT - 使用 J2ME 和 J9 时的 BufferedImage 问题

我正在尝试在 AWT 中使用 BufferedImage 类。我在 IBM 的 J9 虚拟机上使用 J2ME。

当我尝试调用 BufferedImge.getRastor() 方法时,出现以下异常:

现在,根据我对 JVM 的了解,该错误基本上告诉我 BufferedImage 类没有一个名为 getRastor() 的方法,它返回一个 WritableRaster 对象,但是该方法记录在 API 中,它来自版本 1.4.2 所以应该与 J2ME 兼容。

我不知道这里发生了什么,你能帮忙吗?

干杯,

皮特