Возвращение GUI обратно после настройки Nimbus - PullRequest
1 голос
/ 06 января 2011

Я новичок в java, и у меня есть проблема, которую я не могу решить, что бы я ни делал, поэтому любая помощь будет принята с благодарностью.

У меня есть небольшое приложение на Java, и я встроил всплывающий календарь (WWW), который использует внешний вид Nimbus.Моя проблема в том, что я не могу получить тот же внешний вид и интерфейс для моего графического интерфейса после первого запуска всплывающего календаря.У меня есть два варианта.либо для поиска способа сброса настроек, чтобы мой графический интерфейс был таким же, как прежде, и для вызова всплывающего окна, либо для ввода некоторого кода, не уверенного где (основной класс), чтобы весь графический интерфейс использовал внешний вид нимба.

Вот код для всплывающего календаря

import java.awt.*;
import javax.swing.*;
import javax.swing.UIManager.*;

public  class Celendar extends JFrame {
    //private JPanel p;
    Celendar(){
    //super("ColorEditor");
         //UIManager.put("nimbusBase", new Color(233,22,22));
         //UIManager.put("nimbusBlueGrey", new Color(22,200,150));
         //UIManager.put("control", new Color(100,150,200));


    try {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                UIManager.setLookAndFeel(info.getClassName());
                break;
            }else{
                UIManager.setLookAndFeel"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            }
        }
    } catch (Exception e) {
    // If Nimbus is not available, you can set the GUI to another look and
    // feel 
    }

    setLayout(new GridLayout(1,1));
    setSize(322,250);
    setLocation(500,400);
    setResizable(false);
    Days d= new Days();

    /*----- Here -----*/
    //setVisible(true);
    //setDefaultCloseOperation(EXIT_ON_CLOSE);
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    I THINK HERE IS WHERE I NEED TO INSERT SOME CODE TO GET MY GUI DISPLAYING
    BEFORE THECALL TO THE POP UP IS MADE.


    /*----------------*/
    add(d);

    // try{
    //   //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    //   //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    //     UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    //   //UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
    //   //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
    //   //UIManager.setLookAndFeel("com.sun.javax.swing.plaf.metal.MetalLookAndFeel");
    //   SwingUtilities.updateComponentTreeUI(this);
    //  }catch(Exception e){System.out.println("error "+e);}
    }
}

Или где я могу вставить код, чтобы все мои графические интерфейсы выглядели как нимб

1 Ответ

0 голосов
/ 06 января 2011

Если вы хотите, чтобы все пользовательские интерфейсы имели одинаковый L & F, поместите этот код, который устанавливает его, перед созданием любого пользовательского интерфейса или компонента;как правило, прямо в main(String[]) или в конструкторе вашего первого созданного пользовательского интерфейса.Вы также можете установить L & F обратно после завершения работы с календарем, позвонив по номеру UIManager.getSystemLookAndFeelClassName().Представьте, что после установки L & F все компоненты, созданные после этого, получат этот L & F (если вы этого еще не знали).

...