问题标签 [synth]

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 回答
1633 浏览

java - 如何将 SynthLookAndFeel 与 xml 文件一起使用,其中 xml 文件路径将使用 getResourceAsStream 方法加载文件?

我在用

我的 demo.xml 有以下内容:

导致错误:

避免和减少风险。

我怎样才能像path=Menu.class.getResourceAsStream("/image/menu/bg.jpg") 我想避免使用示例中显示的静态路径一样使用它。

跟进:

在此处输入图像描述

0 投票
2 回答
119 浏览

java - 如何解决这个错误,如果我使用一个类会导致其他类接口也被感染

我的案例

我有一个奇怪的BUG

在此处输入图像描述

我需要使用 1 个主类中的 2 个类,如下所示:

  • 驾驶两个班级的 1 个主要班级是YumYumYum

  • 其他 2 个仅作为用户界面的类如下:

    a)MyJSlider主要BUG创建者

    b)Volume第二个类,它只显示一个带有绿色进度条的黑色窗口

现在我已经在一个文件中准备了 SSCCE,demo.xml 也可以从这里获得。

问题

如果我注释掉该行private MyJSlider _______BUG__BUG__BUG_______ = new MyJSlider();它可以工作,但是当我使用它时,它会导致一切麻烦。我该如何解决?

跟进:

  • 在 Java 6 和 Java 7 中测试在 Linux 中的结果相同
0 投票
1 回答
1238 浏览

java - JFrame中的JPopupMenu使用AWTUtilities.setWindowOpaque(window,false)使用合成器L&F没有出现

这让我很不解。基本上,我正在使用自定义 Synth L&F 使用透明形状的窗口开发多窗口应用程序。应用程序的部分调用JFrame/JDialog来自父框架的组件。在这些组件中,我有弹出菜单和组合框,问题是某些使用应用程序的人在调用时遇到弹出菜单不出现的问题。没有例外,代码执行良好,包括弹出菜单的“显示”方法。

除了在 mac OSX 上似乎没有问题之外,我试图将其确定为操作系统细节,但并没有太多乐趣。像我这样的一些 Windows 用户没有遇到任何问题,而其他人则......

我还追踪了设置窗口不透明度的违规代码行:

如果我删除了这个 LOC,那么弹出窗口会很好。除了用以下内容替换此 LOC:

产生同样的问题。另一件事是,如果我使用默认的 L&F,弹出窗口呈现正常。

只是为了确认两个组件的问题是相同的,JFrame并且JDialog只是想知道是否有其他人遇到过这个问题或者可以指出我可能的原因。

干杯

测试源重现:

和testskin.xml:

如前所述,删除:

使组合框弹出菜单渲染正常,此外为所有样式(在 style="backingStyle" 下)添加默认背景,例如:

至少会使弹出菜单出现,但仍无法正确呈现。我在三个单独的 windows xp 虚拟机上试过这个,都遇到同样的问题。此外,我认为我没有提到这一点,但它是基于 JDK 7 构建的,并且在所有情况下都在等效的 JRE 上运行。我自己在 Windows 7 Ultimate 64 位上没有遇到任何问题,另一位使用 Windows 7 Premium 64 位的用户确实遇到了同样的问题。


一些进展,如果出现以下情况,弹出菜单组件的绘制方法无法调用:

已设置。在调用 'show' 方法后手动调用 repaint、updateUI、revalidate 将使弹出菜单渲染正常。对于设置自定义 UI 并覆盖“createPopup”方法的组合框元素,使用扩展 javax.swing.plaf.basic.BasicComboPopup 的类,该类在显示时调用 repaint/updateUI/revalidate,例如:

将使组合框菜单呈现正常。但是,由于弹出窗口是在私有方法中创建的,因此我还没有找到弹出窗口的 submneu (JMenu) 项目的解决方法。这似乎是一个错误,但如果我做错了什么,有人可以告诉我:)

干杯

乔纳森

0 投票
1 回答
3013 浏览

java - 更改 JComboBox 箭头按钮的图标

谢谢您的回复

但这就是我想做的:

当在可编辑的组合框中按下一个键时,我希望 jcombobox 的弹出菜单自动出现,并获取其中写入的文本,但是当我更改箭头按钮的图标时,图标更改但弹出菜单没有' t 按下键时出现。

当我尝试在 Windows 外观中执行此操作时,它运行良好,没有任何问题,但在 Synth 外观中,它不起作用。我搜索了两天,但我无法解决问题。

我尝试使用文档侦听器,但没有任何改变,或者我没有正确使用它

我希望这次能澄清我的问题

0 投票
2 回答
1029 浏览

java - 合成器外观中的默认按钮输入映射?

我正在尝试使用 UIManager 来获取和清除一些默认键绑定,以便空格键不会激活我的 JButton,如此所述。问题是,可能由于我的合成器外观和感觉,(InputMap)UIManager.get("Button.focusInputMap");返回一个null. 有谁知道以其他方式轻松清除组件输入映射的方法,或者为什么 UIManager 在这种情况下返回 null ?任何提示表示赞赏,在此先感谢。

0 投票
2 回答
370 浏览

java - Java 合成器 - 如何为组合绑定自定义编辑器?

我正在为组合框蒙皮。组合框由多个子组件组成,其中一个是编辑器。
我编写了一个自定义编辑器,它具有一些自定义功能,并且我曾经combobox.setEditor(new CustomComboEditor())设置自定义编辑器。我在我的皮肤 xml 文件中为编辑器定义了皮肤标签,如下所示:

请注意,组合 UI 合成器实现是SynthComboBoxUI并且它具有绑定setName(ComboBox.textField),因此我ComboBox.textField在上面的标签中用作键。

我注意到当我将自定义编辑器设置为我的组合编辑器时,皮肤不会生效。
但是,如果我不使用任何自定义编辑器并依赖编辑器的默认实现,我的皮肤可以工作,但是我打算在我的组合编辑器中拥有的功能不会生效。

当我尝试为组合设置自定义渲染器时,我遇到了同样的问题。

0 投票
0 回答
314 浏览

java - Custom look and feel images for JOptionPane

I'm creating a custom look and feel using XML based on the SynthLookAndFeel class, and I was wondering. What style tag would I use to set the images on a JOptionPane?

EDIT: This is just one in specific that I was looking for, but if there is some sort of list of all the tags, that would be awesome.

0 投票
2 回答
1079 浏览

java - 如何在java中加载合成器样式

我正在尝试合成器风格,我遇到了以下问题,经过相当多的研究,我还没有找到答案。我有以下 xml 文件

以及以下 java 代码将该 xml 文件加载为 SynthLookAndFeel 对象

当我尝试运行此代码时,出现以下异常

任何有关如何解决此问题的建议都非常受欢迎。

0 投票
1 回答
136 浏览

java - 合成器覆盖按钮上的文本绘制

是否可以使用painter或其他一些技术来自定义带有合成器的控件上的文本绘制?

我知道你可以在 SynthPainter 中实现paintButtonBorderpaintButtonBacground,但我想知道有没有办法用文本做到这一点?也许一些解决方法?

0 投票
1 回答
987 浏览

java - 在特定的 Swing 组件上设置自定义外观

是否可以在 Swing GUI 上设置仅用于特定组件或组件集的 Synth 外观和感觉的文件,而无需为任何其他组件更改它?