[NetBeans IDE] wygenerowany kod

0

Witam serdecznie,

ma pytanie dotyczące wygenerowanego kodu przez NetBeans IDE . Nie wiem czy go dobrze rozumiem. Aby ten kod wygenerować należy utworzyć Nowy Projekt : Java -> Java Class Library Następnie utworzyć nową klasę, wybierać opcje New JFrame From. Wygeneruję się poniższy kod:

package kasia;

public class NewJFrame2 extends javax.swing.JFrame {

    /** Creates new form NewJFrame2 */
    public NewJFrame2() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame2().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    // End of variables declaration

}

Działanie wygenerowanego kodu rozumiem w następujący sposób:

Klasa NewJFrame2 dziedziczy po klasie JFrame .Jest wykorzystana, aby zbudować okno aplikacji. Metoda NewJFrame2 jest wywoływana jako konstruktor. Posiada w sobie wbudowana automatycznie metodę initComponents();, która ustawia standardowe okno dla narzędzia Netbeans IDE 6.9.1. Poniżej znajduje się metoda @SuppressWarnings("unchecked") wywołana z poziomu konstruktora zainicjowanego formularza. Nie należy jej zmieniać, jej zawartość jest zawsze generowana przez Form Editor. W głównej metodzie main() znajduje się metoda obsługi kolejki zdarzeń EventQueue. Metoda ta powoduje, że kod, który jest umieszczony w metodzie run() zostanie wykonany przez wątek służący do obsługi interfejsu graficznego. Powodem tego jest to iż kod biblioteki Swing nie jest wielowątkowy. Ponieważ obsługą interfejsu zajmuje się już jeden konkretny wątek, to wszystko co zmienia ten interfejs musi być uruchomione z tego właśnie wątku. Wywołując EventQueue przekazane jest do invokeLater() Ta klasa podnosi ten wątek i przekazuje klasę anonimową implementującą interfejs Runnable. Która wymaga zdefiniowania metody run(). W niej zostają podane zdarzenia jakie mają zostać wykonane.

Proszę uprzejmie o wskazanie mi jakiś wskazówek, poprawek..?

Mało znalazłam na internecie o @SuppressWarnings("unchecked") np co ta małpka robi.. , nie rozumiem tego też parametru co posiada w sobie ..

0

To jest adnotacja tłumiąca ostrzeżenia kompilatora typu "unchecked" (kompilator nie będzie ich wyrzucał w obrębie metody initComponents()).
Tu masz trochę o tym: http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.html#What+is+an+unchecked+warning?
A tu wartości przyjmowane przez @SuppressWarnings: http://www.thebuzzmedia.com/supported-values-for-suppresswarnings/

0

Ta "małpka" poprzedza wszystkie adnotacje, czyli informacje pomocnicze dla środowiska Javy. Na przykład dla początkującego jedną z najważniejszych adnotacji umieszczaną przez nagłówkiem metody jest @Override, która informuje o tym, że metoda przysłania inną metodę z klasy bazowej. Dzięki temu jeżeli nastąpi pomyłka w nazwie metody z tą adnotacją lub w nazwie klasy dziedziczonej, to kompilator od razu rzuci ostrzeżeniem, że metoda nie przysłania żadnej innej lub przy braku tej adnotacji, że metoda nieoczekiwanie przysłania inną o tej samej nazwie w klasie bazowej. W obu wypadkach jest to bardzo przydatne zachowanie bo eliminuje trudne do wykrycia błędy.

Adnotacje przydają się wszędzie tam gdzie potrzeba więcej informacji dodatkowych niż udostępnia to definicja języka. Innymi zastosowaniami jest użycie ich do wygenerowania kodu do połączenia z zewnętrznymi bazami danych lub zastosowanie do sterowania kompilatorem lub środowiskiem aplikacji. W wypadku @SuppressWarnings("unchecked") to właśnie taka adnotacja, którą kompilator rozumie jako pominięcie silnego sprawdzania typów i generowania z tego powodu ostrzeżeń. Więcej można się o nich dowiedzieć z każdego nowszego podręcznika do nauki Javy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1