标签: look-and-feel

如何在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
查看次数

Qt定制外观和感觉?

我可以强制我的Qt应用程序使用不同的外观和感觉就像在KDE中完成一样吗?

c++ qt look-and-feel

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

Eclipse外观定制

我需要自定义RCP应用程序的外观.

我看了一下Eclipse Presentation API,我想它允许自定义工作台中除控件之外的所有东西.

那么有任何自定义控件的解决方案吗?

我做了一些研究工作,并使用控制画布绘制实现了一些特殊的SWT cunstomization.可能有更好的解决方案吗?

在Swing中,您可以使用Synth主题.如果SWT存在一些"皮肤"框架,那就太好了.

swt eclipse-rcp look-and-feel

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

如何让iOS在UIBarButtonItem图像上设置渐变?

只是想知道,我通过以下方式定制了UIBarButtonItems

+ (UIBarButtonItem *)createBarButtonItemWithTitle:(NSString *)t target:(id)tgt action:(SEL)a
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    UIImage *buttonImage = [[UIImage imageNamed:@"blabla.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];


    CGRect buttonFrame = [button frame];
    buttonFrame.size.width = 35;
    buttonFrame.size.height = buttonImage.size.height;
    [button setFrame:buttonFrame];

    [button setBackgroundImage:buttonImage forState:UIControlStateNormal];

    [button addTarget:tgt action:a forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

    return buttonItem ;
}
Run Code Online (Sandbox Code Playgroud)

但是现在,我没有按钮背景图像上的阴影/光泽效果....

有没有办法让它自动完成,或者我必须以编程方式完成它?

编辑: 这是一个捕捉,我用一个简单的绿色方块使其更加明显. 没有更多的阴影/光泽效果

customization look-and-feel uibarbuttonitem ios

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

设置Nimbus LookandFeel后,Java Swing JOptionPane是和否按钮的字体大小不同

由于在默认的LookAndFeel中字体大小太小,我使用几行代码将其设置为Nimbus,而我的JOptionPane显示具有不同大小的YesNo按钮. 仍然非常小,而" 否"设置为我指定的大小.有谁知道为什么或如何解决它?

public static void setUIFont(Font a){
    FontUIResource ax=new FontUIResource(a);
    javax.swing.UIManager.put("OptionPane.messageFont", ax);
    javax.swing.UIManager.put("OptionPane.buttonFont", ax);
    javax.swing.UIManager.put("OptionPane.Font", ax);
    javax.swing.UIManager.put("InternalFrame.titleFont", ax);
    javax.swing.UIManager.put("TextField.font", ax);
    javax.swing.UIManager.put("ComboBox.font", ax);
}
Run Code Online (Sandbox Code Playgroud)

...

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 

class UseNimBus extends SwingInvoker{
    public void run(){
        JDialog.setDefaultLookAndFeelDecorated(true);
        setUIFont(new FontUIResource(new Font(ufont, Font.PLAIN, 20)));
    }
}
(new UseNimBus()).execute();// just invokeLater()
Run Code Online (Sandbox Code Playgroud)

以下行显示选项窗格,但它具有" 是"和" 否",具有不同的大小.这是正常还是只是我的问题?

inputValuex=JOptionPane.showConfirmDialog(
    myWin, "Are you exiting?", "You clicked X", JOptionPane.YES_NO_OPTION);
Run Code Online (Sandbox Code Playgroud)

更新

还是行不通.我试过使用代码

javax.swing.UIManager.put("OptionPane.isYesLast", true);

更改按钮的位置,但它没有任何效果.我只是想看看如何设置这些值,如布尔值.

另外,我甚至列出了UIManager.getDefaults() …

java swing look-and-feel joptionpane nimbus

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

如何在更改某些JButton的背景颜色而不是其他颜色时使JButtons看起来一样?

我有一个JFrame,我正在放几个JButton.一半的JButton有颜色编码 - 即我在X事件发生时将它们变成蓝色 - 我使用btn.setBackgroundColor(Color).当我使用setBackgroundColor时,我可以看到我看起来正常的JButton具有着色/着色/具有setBackgroundColor的那些没有.我已经尝试使颜色在有限的程度上透明,但我仍然得到一个平坦的颜色块,而不是有色版本的阴影按钮.

这似乎应该是一个很容易修复的东西,但它现在正在困扰我.我不想改变默认的LAF - 没关系.我不想放弃变色.我确实希望按钮都显示为样式(我用于HTML的单词).

所以我在这里错过了什么....它是什么?

编辑添加:

JFrame frame = new JFrame();
frame.add(new JButton("42"));
JButton btn24 = new JButton("24");
btn24.setBackground(Color.red);
frame.add(btn24);
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,"42"将在我的Windows机器上显示底部和顶部的轻微颜色变化,从而创建圆形和阴影效果."24"按钮将显示红色方块.我的问题是:有没有办法让"24"显示圆形/阴影/样式与顶部的红色色调?或者我是否需要简单地将所有按钮制成扁平方块以获得统一的外观?

谢谢!

java swing look-and-feel jbutton

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

如何删除在JTabbedPane中选择选项卡时出现的蓝色边框高亮显示?

这是我之前的问题的延续,但它解决了一个对其他人有用的特定问题,所以我想我会把它作为一个单独的问题发布.

我已经成功创建了一个JTabbedPane,但是有一个蓝色边框突出显示,显示我要删除的选项卡:

蓝色边框突出显示

为了澄清我的意思,这里是一张JTabbedPane的图片,没有Eclipse的蓝色边框高亮:

日食

我试过的东西已经被注释掉了:

public class SeaGlassExercise {

    public static void initWindow() {
        JFrame frame = new JFrame("Application Name");
        CustomTabbedPane content = new CustomTabbedPane();
        frame.setContentPane(content);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setLocationByPlatform(true);
//                try {
//                    UIManager.setLookAndFeel(
//        UIManager.getSystemLookAndFeelClassName());
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//                SwingUtilities.updateComponentTreeUI(frame);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                initWindow();
            }
        });
    }

}

class CustomTabbedPane extends JPanel {

    public CustomTabbedPane() {
        super(new GridLayout(1, …
Run Code Online (Sandbox Code Playgroud)

java swing look-and-feel jtabbedpane osx-mountain-lion

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

有没有办法在java桌面应用程序上获得windows 8 metro的外观和感觉?

正如标题中所述,我真的很难找到这个问题的好答案.我目前正在开发一个只有桌面的应用程序,没有CSS或任何互联网部分.我希望它看起来像Windows 8的地铁外观.我不是在谈论布局而是外观和感觉.我特别喜欢方形而不是圆形的按钮,但所有其他扁平方形的外观和感觉.以下链接与我正在寻找的相反,作为参考.

关于桌面应用程序中的Metro GUI

这个阅读至少更接近于关于原生外观和java的讨论.然而,它实际上没有给出任何具体的方法来获得例如方形平面按钮:

https://softwareengineering.stackexchange.com/questions/226521/why-is-it-hard-to-make-a-java-program-appear-native

目前我正在使用Eclipse,但我不会坚持使用它,但它最简单.我一直在研究JavaFx,但它似乎没有方形按钮或地铁的感觉,从我读过的东西,但也许我错过了一些东西.任何人都能指出我如何使外观和感觉变得简单吗?

java look-and-feel windows-8

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

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

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

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

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

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

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

没有焦点

没有焦点

焦点

有焦点

java eclipse themes eclipse-plugin look-and-feel

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

使用Java 9+的HiDPI支持,使用Windows L&F的JTable网格线的scalling问题 - 但不是Nimbus

我正在将我的Swing应用程序迁移到Java 11以利用HiDPI显示支持.我正在使用三星显示器,分辨率设置为3840x2160,缩放率为125%,使用Windows 10.

虽然java 9及以上版本被宣传为正确处理HiDPI缩放,但在显示简单的JTable时,网格线显示不同的厚度,如下所示:

JTable网格线问题

这是以下代码:

import javax.swing.*;

public class TestTable {
    public static void main(String[] args) {
        new TestTable();
    }

    public TestTable() {
        JTable table = new JTable(12,6);

        JDialog dialog = new JDialog();
        JScrollPane sp = new JScrollPane(table);

        table.setShowGrid(true);
        table.setRowHeight(25);

        dialog.setContentPane(sp);
        dialog.setSize(300,300);
        dialog.setVisible(true);
        dialog.setLocationRelativeTo(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在设置Nimbus L&F时,问题就会消失:

JTable Nimbus

import javax.swing.*;

public class TestTable {
    public static void main(String[] args) {
        try {
            for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

java look-and-feel nimbus hidpi

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