Смешивая внешний вид - PullRequest
       22

Смешивая внешний вид

2 голосов
/ 16 января 2011

Пока у меня есть это

public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
            UIManager.getBorder("design");//change look and feel here?
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Nimbus isn't available");
        }
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                design GUI = new design();
                GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                GUI.setVisible(true);
            }
        });
    }

Я пытаюсь сделать основной вид и ощущения нимба, но поменяю границу с заголовком на windows.

Моя граница такая:

contentPanel.setBorder(new TitledBorder("Downloader"));

Возможно ли это сделать? Если это кто-то может указать мне, где искать? Я так растерялся прямо сейчас. : \

Спасибо.

Ответы [ 3 ]

2 голосов
/ 16 января 2011

Я сделал это. Вы должны создать части пользовательского интерфейса, а затем вызвать UIManager.setLookAndFeel (), чтобы изменить внешний вид, а затем создать другие части. Это больше похоже на взлом.

0 голосов
/ 18 августа 2018

Я знаю, что опаздываю, но я думаю, что кто-то может использовать это, это своего рода хак, который я использую, чтобы придать приложению универсальный внешний вид: выберите этот стиль и внешний вид перед началом элемента (перед написанием = new ...)

try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Windows".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
    | UnsupportedLookAndFeelException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

, а затем верните внешний вид UIManager на внешний вид и ощущение, что он был включен до того, как вы сделаете это после этого, как в примере ниже:

JButton test;
try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Windows".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
    | UnsupportedLookAndFeelException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
test = new JButton();
try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Mwtal".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
    | UnsupportedLookAndFeelException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Таким образом, только тест кнопки будет иметь вид окон, а остальные будут выглядеть как металл.

Надеюсь, этот взлом поможет кому-то.

0 голосов
/ 25 августа 2013

Когда создается Component, текущий LookAndFeel будет использоваться для отображения этого Component.

...