标签: look-and-feel

Java Swing Range 滑块 UI

我需要一个带有两个旋钮的滑块(代表一个范围),我在这里找到了这个漂亮的。但是,他们创建了自己的 UI,它扩展了 Java 的BasicSliderUI。他们覆盖了paint方法来绘制自己的旋钮。我想使用基于当前外观的默认旋钮。我尝试调用BasicSliderUIpaintThumb方法,但这给了我一个通用的外观旋钮,它似乎与当前的外观和感觉无关。据我所知,JSliderMultiSliderUI获取其 UI 。如何创建一个像JSlider一样变化的 UI ,但绘制两个旋钮而不是一个?

提前致谢!

java user-interface swing look-and-feel jslider

5
推荐指数
1
解决办法
7197
查看次数

如何在Swing GTK LookAndFeel中更改默认字体大小?

有没有办法在Swing GTK LaF中更改默认字体大小?

GTK LaF似乎假定为72dpi,因此所有字体只有使用96dpi屏幕时应该是的大小的3/4.有关详细信息,请参阅此Fedora错误.我想在此期间找到一个解决方法,同时我等待修复.

我已经尝试过重置字体大小UIDefaults,例如,这里推荐的,但是(如前所述)GTK LaF似乎忽略了这一点.

可以构建一个小部件工厂,它也可以设置所需的字体大小来创建我的所有Swing小部件,但这将是大规模侵入性的,所以如果有任何其他方式,我想避免使用该路径.

编辑:以下不起作用:

public class GTKLaF extends com.sun.java.swing.plaf.gtk.GTKLookAndFeel {
  @Override
  public UIDefaults getDefaults() {
    final float scale = 3f;

    final UIDefaults defaults = super.getDefaults(); 

    final Map<Object,Object> changes = new HashMap<Object,Object>();

    for (Map.Entry<Object,Object> e : defaults.entrySet()) {
      final Object key = e.getKey();
      final Object val = e.getValue();

      if (val instanceof FontUIResource) {
        final FontUIResource ores = (FontUIResource) val;
        final FontUIResource nres =
          new FontUIResource(ores.deriveFont(ores.getSize2D()*scale));
        changes.put(key, nres); …
Run Code Online (Sandbox Code Playgroud)

java gtk swing font-size look-and-feel

5
推荐指数
1
解决办法
3488
查看次数

有没有办法在 Ubuntu 下改进 JFileChooser 的外观?

我一直在制作一个使用 JFileChooser 的程序。我已经设置了应用程序

UIManager.getSystemLookAndFeelClassName()

这对 Ubuntu 下的几乎所有东西都适用。到目前为止,我遇到的唯一问题是 JFileChooser 看起来非常糟糕: 带有 SystemLookAndFeel 的 JFileChooser

有没有办法让它看起来像 Ubuntu 中的默认文件选择器?IE。 所需的文件选择器对话框

我试过使用

UIManager.getCrossPlatformLookAndFeelClassName()

这使得 JFileChooser 对话框看起来更好,但仍然不是本机外观,并且它也破坏了应用程序的其余部分的感觉。

谢谢。

java user-interface swing jfilechooser look-and-feel

5
推荐指数
1
解决办法
1951
查看次数

在运行时VB6上为表单上的每个控件添加一个事件处理程序

我有一个VB6应用程序,我希望在其应用程序范围内的控件之间具有一致的行为.例如,其中一种行为是在获得焦点时突出显示文本框,在失去焦点时删除突出显示.我希望这种情况发生在每一种形式上.

我正在尝试做的是有一个子程序,当它们加载时可以被所有表单调用,这将使这种行为发生.这样,我不必为每个单独的文本框手动编码以使其突出显示.

我试过让VB6在运行时将一个事件处理程序附加到一个控件,但它只是咆哮着我.我来自.Net背景,所以也许我接近VB6的错误.但是,如何在不必为每个控件手动编码的情况下获得所需的行为?

vb6 dynamic event-handling look-and-feel

5
推荐指数
1
解决办法
9671
查看次数

如何为 JTable 设置不同的外观?

是否可以为特定组件(在我的例子中JTable)设置与已使用的不同的 L&F?如果可以的话,该怎么办呢?

编辑:我根据本教程编写了这段代码。为什么这段代码不起作用?没有失败或异常,但JTable仍然是一样的。

NimbusLookAndFeel nb = new NimbusLookAndFeel();
jTable1.putClientProperty("Windows.Overrides",nb.getDefaults());
jTable1.putClientProperty("Windows.Overrides.InheritDefaults",false);
Run Code Online (Sandbox Code Playgroud)

java swing jtable look-and-feel

5
推荐指数
1
解决办法
3341
查看次数

setDefaultLookAndFeelDecorated 影响 JFrame 调整大小行为

这是我的代码:

import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


public class Test{


public static void main(String[] args){

    SwingUtilities.invokeLater(new Runnable(){

        @Override
        public void run() {

            JFrame.setDefaultLookAndFeelDecorated(true);

            JFrame frame = new JFrame();
            JPanel jp = new JPanel();

            jp.setMinimumSize(new Dimension(200, 200));
            jp.setPreferredSize(new Dimension(200, 200));

            //frame.getContentPane().setMinimumSize(new Dimension(200, 200));
            //frame.getContentPane().setPreferredSize(new Dimension(200, 200));

            frame.getContentPane().add(jp);

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
        }
    });
}
}
Run Code Online (Sandbox Code Playgroud)

它的行为完全符合我的要求。用户可以调整大小,JFrame但它总是足够大以容纳 200px x 200px JPanel。但是当我删除时:

JFrame.setDefaultLookAndFeelDecorated(true);

用户可以调整JFrame到任何大小。

为什么默认外观和感觉装饰会影响调整大小?我怎样才能让它工作没有setDefaultLookAndFeelDecorated(true)?我知道我可以手动设置帧最小尺寸 ( JFrame#setMinimumSize(new Dimension dim)),如果没有更智能的解决方案,我会这样做。

我在 Windows 7 上使用 jdk …

java swing resize jframe look-and-feel

5
推荐指数
1
解决办法
2187
查看次数

合金外观和抗锯齿

这里有人使用合金外观吗?我在抗锯齿和 JTextComponents 方面遇到了一个奇怪的错误。Alloy 默认情况下根本不使用抗锯齿功能,因此我必须通过创建自己的 UI 类来强制使用它。这在大多数情况下都可以正常工作,但某些字符会对抗锯齿造成严重破坏。

\n\n

例如,如果合金设置为外观,并且我将一些希伯来语文本插入到 JTextComponent 中,例如:\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d、\xd7\x9e\xd7\ x94 \xd7\xa9\xd7\x9c\xd7\x95\xd7\x9e\xd7\x9a \xd7\xa9\xd7\x9e\xd7\x99 \xd7\x94\xd7\x95\xd7\x90 \xd7\x94\ xd7\x90\xd7\xa7\xd7\x96\xd7\x99\xd7\x93\',整个 JTextComponent 突然永久失去抗锯齿功能。

\n\n

奇怪的是,我什至没有扩展 AlloyTextPaneUI,而是扩展 BasicTextPaneUI 来进行抗锯齿,所以我很困惑合金在哪里出现(其他外观和感觉似乎工作得很好)。

\n\n

我很难追踪这个错误...有人遇到过同样的问题吗?

\n\n

这是一个演示该问题的简短示例:

\n\n
import com.incors.plaf.alloy.AlloyLookAndFeel;\nimport com.incors.plaf.alloy.themes.glass.GlassTheme;\n\nimport javax.swing.*;\nimport javax.swing.plaf.ComponentUI;\nimport javax.swing.plaf.basic.BasicTextPaneUI;\nimport javax.swing.text.BadLocationException;\nimport javax.swing.text.StyledDocument;\nimport java.awt.*;\n\npublic class Scrap {\n\n    static {\n        // NOTE: You need a license code for Alloy!\n        AlloyLookAndFeel.setProperty("alloy.licenseCode", "your license here");\n\n        UIManager.put("TextPaneUI", MyTextPaneUI.class.getName());\n\n        try {\n            UIManager.setLookAndFeel(new AlloyLookAndFeel(new GlassTheme()));\n        } catch (UnsupportedLookAndFeelException e) {\n            e.printStackTrace();\n        }\n\n        // With system Look and Feel everything works just fine...\n//      try …
Run Code Online (Sandbox Code Playgroud)

java swing jtextpane antialiasing look-and-feel

5
推荐指数
1
解决办法
1246
查看次数

更改Eclipse的工具提示/提示/ sugestions/overlay窗口颜色

我花了最后几个小时试图解决这个问题,但没有成功.

我最近改为黑暗主题,但我在阅读工具提示/提示/ sugestions/overlay窗口时遇到问题(不知道该怎么称呼它,因为我已经看到人们调用所有这些不同的名字),以更易读的格式无需点击它就能阅读它.

已经尝试过切换windows工具提示颜色,如其他帖子所示,但没有成功.我正在使用Windows 7.

从下面的屏幕截图中可以看出,当显示工具提示/提示/ sugestions/overlay窗口时,它是非常难以理解的,并且必须单击它以使其可读是非常烦人的.

关于如何更改未聚焦的背景颜色或所有文本颜色的方法?

没有焦点

没有焦点

焦点

有焦点

java eclipse themes eclipse-plugin look-and-feel

5
推荐指数
1
解决办法
806
查看次数

java中的Windows本机文件选择器

显然,Windows (10) 上有(至少?)两个不同的本机文件选择器。有一个,它被JFileChooser和其他程序使用:图片来自:http://stackoverflow.com/questions/10745198/how-to-use-the-default-file-chooser-for-the-operating-system-java

还有一个,例如 Chrome 使用的: 其他 Windows 本机文件选择器

我比第一个更喜欢它,因为:

  • 您可以直接在顶部输入您的文件路径
  • 您可以搜索文件夹
  • 左侧的直接访问包含整个文件树

我如何在 Java 中获取它?

java windows jfilechooser look-and-feel

5
推荐指数
1
解决办法
3997
查看次数

为什么在使用 System L&amp;F 时 JMenu 无法正确呈现?

错误报告

这已被确认为错误。你可以在这里跟踪它:

https://bugs-stage.openjdk.java.net/browse/JDK-8258934

背景

  • 除了我在 MCVE 中发布的代码之外,没有其他代码在运行;运行此程序时没有其他 JVM 处于活动状态(尽管我认为这无关紧要)。

  • 我没有安装任何自定义系统 UI 的程序。

目标环境

Java 1.8.0_201
Windows 10 Home Edition
Run Code Online (Sandbox Code Playgroud)

测试过的 JDK

  • JDK 8 到 JDK 15

由第三方测试

  • George Z. - Windows 7 -可以重现错误
  • David Kroukamp - Windows 10,JDK 10 -可以重现错误
  • camickr - Windows 10,JDK 11 -可以重现错误
  • Canvas (Discord) - Windows 10 -可以重现错误
  • Pawnee (Discord) - macOS Catalina 10.15.7, JDK 15 -无法重现错误

MCVE

import javax.swing.*;

public class Demo {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(Demo::launchUI); …
Run Code Online (Sandbox Code Playgroud)

java graphics swing look-and-feel jmenu

5
推荐指数
0
解决办法
135
查看次数