- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一个应用程序,它需要一些小部件来使用不同的外观和感觉。应用程序的其余部分使用系统外观。
我的方法是在初始化应用程序时将 LF 换成所需的 LF,创建组件,然后重置 LF。这在 Windows 操作系统上运行良好,但在 Ubuntu 上测试时,它未能以一种奇怪的方式为组件设置 LF。
在 Ubuntu 上,UIManager.getSystemLookAndFeelClassName()
报告 LF 是一个 javax.swing.plaf.metal.MetalLookAndFeel
。这是第一个麻烦——我希望它返回 com.sun.java.swing.plaf.gtk.GTKLookAndFeel
。奇怪的是,我的方法在程序使用 Metal LF 时有效,但在使用 GTK LF 时失败,它将整个框架和其中的所有组件设置为 GTK LF。
以下 SSCCE 演示了该问题:
import javax.swing.*;
import java.awt.*;
import static javax.swing.UIManager.*;
public class LaFTest {
public static void main(String[] argv) throws ReflectiveOperationException, UnsupportedLookAndFeelException {
String[] keys = {
"java.specification.version",
"java.version",
"java.vm.version",
"java.specification.vendor",
};
for (String key : keys) {
System.out.printf("%-40s%s\n", key, System.getProperty(key));
}
System.out.println(UIManager.getSystemLookAndFeelClassName());
// Swap for "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
JFrame frame = new JFrame("LaF Test");
Container content = frame.getContentPane();
content.setLayout(new GridLayout(2, 0));
JButton button = new JButton("System");
content.add(button);
LookAndFeel previous = getLookAndFeel();
for (LookAndFeelInfo feel : getInstalledLookAndFeels()) {
if (feel.getName().equals("Nimbus")) {
setLookAndFeel(feel.getClassName());
}
}
JButton second = new JButton("Nimbus");
content.add(second);
setLookAndFeel(previous);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
但是请注意,我不确定此问题的重现性。由于快速谷歌显示没有类似的问题,它可能是我的机器特有的问题。无论如何,从 Ubuntu 12 更新到 13,以及从 13 更新到 14 时,它一直存在。据此我认为这是 Swing 的问题,而不是底层系统的问题。
上面程序的输出是,在我的机器上,
java.specification.version 1.7
java.version 1.7.0_51
java.vm.version 24.51-b03
java.specification.vendor Oracle Corporation
javax.swing.plaf.metal.MetalLookAndFeel
使用金属感,得到的窗口是
换成 GTK 的感觉,
我已经研究了一段时间了,但没有结果。有什么我想念的吗?任何人都可以重现这个,如果是的话,它是 Java 发行版中的错误还是我的代码中的错误?有没有更好的方法来实现我的目标?
最佳答案
我很想对此进行深入调试,但临近截止日期迫使我安装 Oracle Java 包,从而解决了这个问题。一个令人失望的答案,但它确实永久地解决了这个问题。
关于java - Ubuntu 上的外观问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305850/
您可以将自定义皮肤/外观应用于 SSMS 吗?我正在考虑类似于大多数 IDE 中的深色主题(黑色背景、黄色字体)的做法 最佳答案 我决定在 SSMS 2012 上尝试一些简单的操作: 转到http:/
WordPress主题开发中如何在外观部分显示菜单选项?我可以看到主题、自定义和编辑器选项。这段代码有什么问题- function pietergoosen_theme_setup() { reg
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我正在我的一个项目中使用 JTabbedPane,并且我正在尝试更改应用程序的外观和感觉。当我设置窗口的外观和感觉(以及与此相关的任何其他外观和感觉)时,所有按钮、检查按钮等都会更改为它们应该的外观,
如何更改使用 SFAuthenticationSession 时显示的 SafariVC 上的tintColor 和 barTintColor? 我尝试更改 UINavigationBar 、 UIT
我想让 editText 看起来像这样: 设置editText的背景后我还应该做什么如何通过代码让文本在edittext中开始。 最佳答案 您是否想让 EditText 默认说“用户名”,但不是实际的
我在 didFinishLaunchingWithOptions 末尾使用以下代码 [[UITableViewHeaderFooterView Appearance] setTintColor:[UI
我的 ActionBar 中有 android.support.v7.widget.ShareActionProvider 菜单。 当我点击“分享”时,应用列表显示为弹出菜单。 当我在 Google
在使用 shiny 作为调查工具时,我想将 slider 用作“李克特式问题”。 因此,我想自定义 slider 末端的标题,使其有点像“我完全同意”和“我完全不同意”。有没有一种流畅的方法可以做到这
我正在阅读 Laravel 文档,试图更深入地了解该框架,但我在外观方面遇到了一些麻烦。我想我明白它们是什么,它们主要是为了方便访问 Laravel 核心而使用。 我对这个主题感到困惑: How do
我正在制作一款游戏,我想要一个用户可以填写表格提出想法或错误的地方,但希望它看起来与游戏图形/按钮等的其余部分相似。我不知道如何制作带图片的自定义文本字段。我希望最终结果如下所示: 我知道如何设置自定
我的 Storyboard中有多个 UINavigationController。由于我使用的是 tabbarcontroller,因此每个选项卡项都在其 ViewController 之前嵌入了自己
我需要创建一个外观,将请求转发到其他 Web 服务。 除了转发之外,外观只会对用户进行身份验证/授权。 实现这个的好方法是什么? 我曾经使用 Jersey,也许有比手动创建 WebTarget 更好的
我使用了 windows 安装程序(msi 项目),实际上我在安装后得到了 msi 文件,它会在桌面上显示一个快捷方式。 我的问题是,当我双击我的应用程序的快捷方式时,它会显示类似安装的内容,然后它会
我通过 trayIcon.displayMessage(...) 在系统托盘上显示消息,但它们看起来不太好。我试图将它们的外观更改为系统标准,但在创建图标之前调用 UIManager.setLookA
我正在尝试为我的应用程序应用深色主题,当我调用深色主题时遇到问题,代码在重新启动应用程序之前不起作用。我在设置 View Controller 中使用 UISwtich 调用黑暗模式。当我打开深色模式
我正在为我不拥有或无法访问其源代码的 Swing 应用程序编写插件。在我的部分 UI 中,我想使用特定的颜色来匹配我的图标。 在这种情况下,我想创建一个具有特定背景颜色的 JPanel。 final
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Look and feel in java 是否有第三方漂亮的 L&F for Java swing 应用程序?默认
我想要 JButton 的外观: 我尝试通过这种方式更改 Windows 的外观: UIManager.setLookAndFeel("com.sun.java.swing.plaf.window
是否可以更改 UITabBarController 的外观? 例如,将 tabBarItems 垂直(而不是水平)排列在 View 的中心(而不是锁定在底部) 最佳答案 对于你想要的改变,没有。 您所
我是一名优秀的程序员,十分优秀!