Tag: synth

JFrame中的JPopupMenu使用AWTUtilities.setWindowOpaque(window,false),使用合成器L&F不显示

这个让我很困惑。 基本上我正在使用定制的Synth L&F使用透明形状的窗口开发多窗口应用程序。 应用程序的JDialog部分从父框架调用JFrame / JDialog组件。 在这些组件中,我有弹出菜单和combobox,问题是一些使用应用程序的人会遇到调用时没有出现的弹出菜单。 没有例外,代码执行正常,包括弹出菜单’show’方法。 除了在Mac OSX上似乎没有问题之外,我已经尝试将这个问题归结为操作系统细节。 像我这样的一些Windows用户没有遇到任何问题,其他人做…. 此外,我已经找到了设置窗口不透明度的有问题的代码行: AWTUtilities.setWindowOpaque(window, false) 如果我删除此LOC,则弹出窗口显示正常。 另外用以下内容替换此LOC: window.setBackground(new Color(0.0f, 0.0f, 0.0f, 0.0f)); 产生同样的问题。 另一件事是,如果我使用默认的L&F弹出窗口渲染正常。 只是为了确认JFrame和JDialog组件的问题是相同的,并且只是想知道是否有其他人遇到过这个问题或者可能指出我可能的原因。 干杯 测试源重现: import com.sun.awt.AWTUtilities; import javax.swing.*; import javax.swing.plaf.synth.SynthLookAndFeel; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TestFrame extends JFrame{ public TestFrame(){ super.setTitle(“Test Frame”); JButton btnDialog = new JButton(“Open Dialog”); btnDialog.addActionListener(new ActionListener() […]