Kod javy

0

Nie mogę zrozumieć jak mam zapisać to co jest tu napisane(na dole) w postaci kodu do kompilatora Javy. [???] Początek jeszcze ale potem się zaczyna.
Siedzę nad tym siedzę i nie mogę tego zrozumieć.Jak co to zapodaje kod który zrobiłem ale nie działa po kompilacj tak jak powinien(jak coś nie jaśnie wytłumaczyłem to piszcie) :/ :

<font size="3">KOD</span>

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

/*

  • NewJFrame.java
  • Created on 2010-02-10, 2023
    */

/**
*

  • @Author ania i mariusz
    */
    public class NewJFrame extends javax.swing.JFrame {

    double wynik;
    String spole;
    double fpole;
    int ComboBox1;
    int ComboBox2;

    /** Creates new form NewJFrame */
    public NewJFrame() {
    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() {

     jPanel1 = new javax.swing.JPanel();
     jLabel1 = new javax.swing.JLabel();
     jComboBox1 = new javax.swing.JComboBox();
     jButton1 = new javax.swing.JButton();
     jLabel2 = new javax.swing.JLabel();
     jComboBox2 = new javax.swing.JComboBox();
     jScrollPane2 = new javax.swing.JScrollPane();
     jTextPane2 = new javax.swing.JTextPane();
    
     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    
     jPanel1.setBackground(new java.awt.Color(51, 255, 51));
    
     jLabel1.setBackground(new java.awt.Color(0, 0, 204));
     jLabel1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
     jLabel1.setForeground(new java.awt.Color(0, 0, 153));
     jLabel1.setText("Zmień");
    
     jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "mm", "cm", "dc", "m", "km" }));
    
     jButton1.setText("Przelicz");
     jButton1.addActionListener(new java.awt.event.ActionListener() {
         public void actionPerformed(java.awt.event.ActionEvent evt) {
             przelicznie(evt);
         }
     });
    
     jLabel2.setText("na");
    
     jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "mm", "cm", "dc", "m", "km" }));
    
     jScrollPane2.setViewportView(jTextPane2);
    
     javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
     jPanel1.setLayout(jPanel1Layout);
     jPanel1Layout.setHorizontalGroup(
         jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGroup(jPanel1Layout.createSequentialGroup()
             .addGap(24, 24, 24)
             .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
             .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
             .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
             .addComponent(jLabel2)
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
             .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
             .addComponent(jButton1)
             .addContainerGap(162, Short.MAX_VALUE))
     );
     jPanel1Layout.setVerticalGroup(
         jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGroup(jPanel1Layout.createSequentialGroup()
             .addGap(133, 133, 133)
             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                     .addComponent(jComboBox1, javax.swing.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE)
                     .addComponent(jLabel2)
                     .addComponent(jComboBox2, javax.swing.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE)
                     .addComponent(jButton1))
                 .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE))
             .addGap(148, 148, 148))
     );
    
     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
     getContentPane().setLayout(layout);
     layout.setHorizontalGroup(
         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
     );
     layout.setVerticalGroup(
         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
     );
    
     pack();
    

    }// </editor-fold>

    private void przelicznie(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    }

    /**

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

        }
        private void getText(double spole) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      
      
      
      
        private void getSelectedIndex(int ComboBox1,int ComboBox2) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      
      
        private void getText(String spole) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      
        private void parseDouble(double fpole) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      
        private void getSelectedIndex(int ComboBox1) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      
        private void setMaximumFractionDigits(int i) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      
        private void format(double fpole) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      
        private void setText(double wynik) {
            throw new UnsupportedOperationException("Not yet implemented");
        }
      

      });
      }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBox2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextPane jTextPane2;
    // End of variables declaration

}
<font size="3">
TO CZEGO NIE MOGĘ ZROZUMIEĆ :-[ </span>

Na początku deklarujemy zmienną zmiennoprzecinkową typu double, która przechowuje wynik przeliczenia miary długości. Nadajemy jej nazwę wynik.

Następnie tworzymy zmienną typu String (łańcuch znakowy). Otrzymuje ona nazwę spole. Zmiennej tej przypisujemy wartość pobraną z pola tekstowego. Wartość tę pobieramy za pomocą metody getText(). Dodatkowe wywołanie metody trim() spowoduje wycięcie zbędnych spacji, które mogłyby się znaleźć na początku i końcu łańcucha znakowego.

By móc wykonywać działania matematyczne na pobranej z pola tekstowego wartości, musimy ten łańcuch znakowy przekonwertować do wartości typu double. W tym celu tworzymy kolejną zmienną typu double o nazwie fpole. Wywołujemy statyczną metodę parseDouble() klasy Double. Jej parametrem jest łańcuch znakowy, który chcemy zamienić na liczbę zmiennoprzecinkową typu double.

Z obiektów typu JComboBox pobieramy za pomocą metody getSelectedIndex() numer indeksu zaznaczonego na liście wartości. Indeksy liczone są od zera (jeśli użytkownik wybierze pierwszy element, oznacza to, że został wybrany indeks zerowy). Wartości indeksów przypisujemy zmiennym typu całkowitego int w zmiennych o nazwach intComboBox1 oraz intComboBox2.

W kolejnym kroku za pomocą instrukcji warunkowej if sprawdzamy, czy indeksy z obu list są jednakowe. Jeśli tak, oznacza to, że wartość wpisana do pola tekstowego nie ulegnie zmianie (jest to sytuacja, w której przechodzi przeliczanie milimetrów na milimetry czy metrów na metry). W tym banalnym wypadku wystarczy zmiennej wynik przyporządkować wartość pola. Dla innych kombinacji trzeba będzie przeliczyć wartość wynikową.

Po instrukcji if (jeśli) w nawiasach okrągłych podany jest warunek, który powinien być spełniony, aby program mógł wykonać operacje znajdujące się w nawiasach klamrowych. Jeśli warunek nie zostanie spełniony, wykonywane są kolejne warunki podane po instrukcji else if (w przeciwnym wypadku).

Po ustaleniu wartości zmiennej wynik przystępujemy do jej sformatowania. Odpowiada za to klasa NumberFormat, która znajduje się w pakiecie java.text.*. Importujemy ten pakiet na początku kodu źródłowego, by oszczędzić sobie wpisywania go przed każdym zapisem klasy NumberFormat. W przeciwnym razie, bez wcześniejszego zaimportowania pakietu java.text, musielibyśmy za każdym razem używać kodu w postaci:
java.text.NumberFormat nf=java.text.NumberFormat.getNumberInstance();

Jak zaimportować pakiet w Javie?
Importowanie pakietu odbywa się poprzez wpisanie na początku pliku źródłowego dyrektywy import oraz nazwy pakietu z nazwą klasy lub znakiem * oznaczającym wszystkie klasy zawarte w tym pakiecie i znaku średnika:
import java.text.*;

Instancję klasy NumberFormat pobieramy, wywołując jej statyczną metodę getNumberInstance(). Klasa NumberFormat dostarcza metody setMaximumFractionDigits(), służącej ustaleniu maksymalnej liczby cyfr po przecinku. W naszym przykładzie ustawiamy trzy cyfry po przecinku.

Następnie wywołujemy metodę format(), która pobiera zmienną typu double. Wartość tej zmiennej zostanie sformatowana według ustawionych przez nas wcześniej zasad. Metoda zwróci już sformatowany łańcuch znakowy.

Końcowym etapem działania programu jest przekazanie uzyskanej wartości w postaci tekstu do trzeciej etykiety. Tekst przekazujemy do etykiety, wywołując dla jej obiektu metodę setText() na otrzymanym łańcuchu znakowym.

Łańcuchy znakowe można w Javie łączyć za pomocą znaku '+'.

Oprócz wartości zmiennej wynikowej podajemy także wartość wybranego elementu z drugiej listy rozwijanej. Dzięki temu po ciągu znaków wartości zostanie dopisana jednostka długości, na którą przeliczaliśmy.

Jeśli ktoś mógłby mi to wytłumaczyć byłbym wdzięczny ;] bo z javą dopiero zaczynam ;)

0

Ale gdzie pytanie?

0

Weź cały kod, daj go do pliku "NewJFrame.java" (utwórz plik tekstowy, wklej, zapisz, zmień rozszerzenie)

Odpal konsolę (cmd.exe)
wpisz
javac NewJFrame.java
następnie
java NewJFrame

I programik się uruchomi

0

Ja jestem pewien że on umie to skompilować. Ale do tego kodu trzeba coś dopisać (polecenia pod kodem) i on liczy że ktoś to zrobi za niego :D

0

nie koniecznie, tylko ja nie rozumiem co ten ktoś pisząc to chciał przekazać w jaki sposób ma się ten kod zapisać i gdzie ma się znajdować

0

Dobra można zamknąć, znalazłem odpowiedź

0

Ten kod, który wkleiłeś wygląda mi na wygenerowany w Netbeans. Po pierwsze skoro jesteś zupełnie początkujący w javie nie próbuj go nawet zrozumieć. Generowanie szkieletu aplikacji jest sposobem na przyspieszenie jej produkcji - ale dla zaawansowanych w javie osób. Dla początkujących to koszmar ponieważ nie znając javy muszą się zmierzyć z prawie całą specyfikacją języka. A to nie jest możliwe w krótkim czasie i kończy się zazwyczaj całkowitym porzuceniem prób programowania.

Szczególnie nie próbuj zrozumieć co jest z metodzie initComponents ponieważ jej wygenerowana zawartość jest nierzadko zbyt skomplikowana dla starych wyjadaczy - a właściwie nie tyle zbyt skomplikowana ile nie warto poświęcać ani minuty na jej analizowanie.

Skoro uczysz się z Netbeans, to przede wszystkim powinieneś zabrać się za czytanie tutoriala i robienie przykładów z niego. Trzeba zaczynać od najprostszych przykładów i to najlepiej przy okazji czytając równocześnie dobry podręcznik Javy 5 lub 6 dla początkujących (Java 4 lub inaczej 1.4 i starsze (np. Java 2, czyli 1.2 są już przestarzałe).

Jeżeli chcesz robić proste programiki GUI w Netbeans, to musisz korzystać jak najwięcej z edytora graficznego w trybie "design" i jak najrzadziej bez powodu przechodzić na zakładkę "source". Edytor będzie Cię przerzucał do trybu source tylko w miejsca kodu do obowiązkowego wypełnienia, a zaraz potem powinieneś wracać do trybu design.
Alternatywnie powinieneś robić najprostsze programiki w ogóle bez użycia edytora graficznego ucząc się na jak najprostszych przykładach. Dlatego te z tutoriali Suna są najlepsze bo zawierają projekty z użyciem edytora GUI pod odpowiednią wersję Netbeans. Idąc po kolei zaczniesz rozumieć które klasy Swinga za co odpowiadają i z czasem kod, który podałeś wyżej nie będzie dla Ciebie czarną magią.
Oczywiście to nie wystarczy - potrzebny Ci będzie dobry podręcznik do Javy bo wszelkie tutoriale, to tylko jego uzupełnienie.

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