Возврат GUI обратно после настройки Nimbus

Новичок в 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);}
    }
}

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


person Simon Andi    schedule 05.01.2011    source источник
comment
Новичок в Java, да? Желаю тебе очень-очень удачи. Хотя бы попробуй развлечься. :) О, и, пожалуйста, сделайте отступ в коде четырьмя пробелами, смотрите правила форматирования. Добро пожаловать! :D   -  person    schedule 06.01.2011


Ответы (1)


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

person Merky    schedule 05.01.2011
comment
Привет Merky, Спасибо за вашу помощь, вот моя главная страница, куда ее вставить, пожалуйста? Размер sd=Toolkit.getDefaultToolkit().getScreenSize(); md.setLocation(sd.width/2-400/2, sd.height/2-400/2); md.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } спасибо Саймон - person Simon Andi; 06.01.2011
comment
Извините, ложная тревога Merky не работает вообще, как мне изменить его обратно на внешний вид графического интерфейса Java с помощью UImanager.getSystemLookAndFeelClassName? - person Simon Andi; 06.01.2011
comment
Разобрался - спасибо всем за ответы. Саймон - person Simon Andi; 06.01.2011
comment
Извините, не работал (на EST в США), поэтому я не видел ваших вопросов. Так ты получил то, что тебе было нужно? - person Merky; 06.01.2011