Kako pokrenuti JAR file?

2

Kako pokrenuti JAR file?

offline
  • Pridružio: 01 Feb 2014
  • Poruke: 92

Kad sve izbrisem i ovako zalijepim radi sasvim normalno,al nikako nzm kako da ovo uklopim u ovo sto vec imam,bas sam glup -.-
napominjem jos 1 da mi je ovo prva apliakcija,niakd nisam radio u javi i netbeansu pa sa mnom mora sve polako Very Happy
Ja kad pravim aplikaciju idem desni klik na paket pa opciju new frame i tamo sve podesavam i ubacujem buttone,polja za unos teksta i slicno
da li mi je i u tom slucaju potrebno ovo?

kod za neku najjednostvniju aplikaciju izgleda ovako

/*  * To change this license header, choose License Headers in Project Properties.  * To change this template file, choose Tools | Templates  * and open the template in the editor.  */ package proba; /**  *  * @author pc  */ public class Proba {     /**      * @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);                             }         });     }     }
a u NewJframe za tu istu aplikaciju imam ovo

/*  * To change this license header, choose License Headers in Project Properties.  * To change this template file, choose Tools | Templates  * and open the template in the editor.  */ package proba; /**  *  * @author pc  */ public class NewJFrame extends javax.swing.JFrame {     /**      * 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() {         jButton1 = new javax.swing.JButton();         jLabel1 = new javax.swing.JLabel();         jTextField1 = new javax.swing.JTextField();         jLabel2 = new javax.swing.JLabel();         jTextField2 = new javax.swing.JTextField();         jTextField3 = new javax.swing.JTextField();         jButton2 = new javax.swing.JButton();         jButton3 = new javax.swing.JButton();         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);         jButton1.setText("Rezultat");         jButton1.addActionListener(new java.awt.event.ActionListener() {             public void actionPerformed(java.awt.event.ActionEvent evt) {                 jButton1ActionPerformed(evt);             }         });         jLabel1.setText("Bacac koplja");         jTextField1.addActionListener(new java.awt.event.ActionListener() {             public void actionPerformed(java.awt.event.ActionEvent evt) {                 jTextField1ActionPerformed(evt);             }         });         jLabel2.setText("Macevalac");         jTextField2.addActionListener(new java.awt.event.ActionListener() {             public void actionPerformed(java.awt.event.ActionEvent evt) {                 jTextField2ActionPerformed(evt);             }         });         jButton2.setText("clear");         jButton2.addActionListener(new java.awt.event.ActionListener() {             public void actionPerformed(java.awt.event.ActionEvent evt) {                 jButton2ActionPerformed(evt);             }         });         jButton3.setText("proba");         jButton3.addActionListener(new java.awt.event.ActionListener() {             public void actionPerformed(java.awt.event.ActionEvent evt) {                 jButton3ActionPerformed(evt);             }         });         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());         getContentPane().setLayout(layout);         layout.setHorizontalGroup(             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)             .addGroup(layout.createSequentialGroup()                 .addGap(31, 31, 31)                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                     .addGroup(layout.createSequentialGroup()                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                             .addComponent(jLabel1)                             .addComponent(jLabel2))                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)                             .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE)                             .addComponent(jTextField1)                             .addComponent(jTextField2))                         .addGap(34, 34, 34))                     .addGroup(layout.createSequentialGroup()                         .addComponent(jButton1)                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 181, Short.MAX_VALUE)                         .addComponent(jButton2)                         .addGap(60, 60, 60))))             .addGroup(layout.createSequentialGroup()                 .addGap(40, 40, 40)                 .addComponent(jButton3)                 .addGap(0, 0, Short.MAX_VALUE))         );         layout.setVerticalGroup(             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()                 .addGap(47, 47, 47)                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                     .addComponent(jLabel1)                     .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                 .addGap(18, 18, 18)                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                     .addComponent(jLabel2)                     .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                 .addGap(18, 18, 18)                 .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                 .addGap(29, 29, 29)                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                     .addComponent(jButton1)                     .addComponent(jButton2))                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 45, Short.MAX_VALUE)                 .addComponent(jButton3)                 .addGap(39, 39, 39))         );         pack();     }// </editor-fold>                            private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                          int a,b; double c,d,e; a= Integer.parseInt(jTextField1.getText() ); b= Integer.parseInt(jTextField2.getText() ); c=a* 1.4 ; d=b*1.2; e=c+d; jTextField3.setText ("" +e);             }                                            private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {                                                    // TODO add your handling code here:     }                                                private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                          jTextField1.setText ("");        jTextField2.setText ("");      jTextField3.setText ("");              }                                            private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                                    // TODO add your handling code here:     }                                                private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                          int a; double b; a= Integer.parseInt(jTextField1.getText() ); b= a* 1.4; jTextField3.setText ("" +b);     }                                            /**      * @param args the command line arguments      */     public static void main(String args[]) {         /* Set the Nimbus look and feel */         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html          */         try {             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {                 if ("Nimbus".equals(info.getName())) {                     javax.swing.UIManager.setLookAndFeel(info.getClassName());                     break;                 }             }         } catch (ClassNotFoundException ex) {             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);         } catch (InstantiationException ex) {             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);         } catch (IllegalAccessException ex) {             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);         } catch (javax.swing.UnsupportedLookAndFeelException ex) {             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);         }         //</editor-fold>         /* Create and display the form */         java.awt.EventQueue.invokeLater(new Runnable() {             public void run() {                 new NewJFrame().setVisible(true);             }         });     }     // Variables declaration - do not modify                          private javax.swing.JButton jButton1;     private javax.swing.JButton jButton2;     private javax.swing.JButton jButton3;     private javax.swing.JLabel jLabel1;     private javax.swing.JLabel jLabel2;     private javax.swing.JTextField jTextField1;     private javax.swing.JTextField jTextField2;     private javax.swing.JTextField jTextField3;     // End of variables declaration                    }

i gdje ja sad da ubcim to za zatvaranje?


Znam da je ovo ptinje strasno glupo i da mi se sad mnogi smiju,ali hocu da naucim, mora se od neceg poceti



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
online
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Vidiš li sličnosti između ova dva koda? Very Happy
package prozor; import javax.swing.JFrame; public class MainKlasa extends JFrame {     public static void main(String[] args){         JFrame frejm = new JFrame();                 frejm.setVisible(true);         frejm.setSize(300,300);         frejm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     } }
package proba; public class Proba {     public static void main(String[] args) {           java.awt.EventQueue.invokeLater(new Runnable() {             public void run() {                 new NewJFrame().setVisible(true);                             }         });     }     }
Dakle, main je glavna funkcija programa. Kada se krene sa izvršenjem programa, kreće se od main funkcije. Znači, u njoj nad frejmom pozivaš određene funkcije. U liniji "new NewJFrame().setVisible(true);" ti pozivaš funkciju setVisible nad objektom koji si kreirao. Nad istim tim objektom treba da pozoveš i funkciju setDefaultCloseOperation. Da bi to uradio, moraš da imaš pokazivač na objekat, odnosno moraš da sačuvaš pokazivač na frejm koji kreiraš operatorom new. Dakle, ovako bi trebalo:
NewJFrame frejm = new NewJFrame(); //ovim kreiraš objekat nad kojim ćeš da pozivaš potrebne funkcije frejm.setVisible(true); frejm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ...



offline
  • Dr SiGn  Male
  • Stručni saradnik
    Windows
  • Pridružio: 11 Jul 2005
  • Poruke: 1149
  • Gde živiš: Beograd

Citat:Ja kad pravim aplikaciju idem desni klik na paket pa opciju new frame i tamo sve podesavam i ubacujem buttone,polja za unos teksta i slicno

Ok je da koristis GUI builder (dosta ubrzava razvoj aplikacija), ali mislim da ces bolje i vise nauciti ako
sam kucas kod za GUI.

offline
  • Pridružio: 01 Feb 2014
  • Poruke: 92

vasa.93, hvala na objasnjenju Very Happy
Dr. Sign, vjerujem da bih vise naucio ali prvi put u zivotu radim ovo,polako,doci cemo i do tog da samostalno kucam GUI kod Very Happy
nego imam jos jedno pitanje

ovo je kod za neki button,a pritiskom na njega bi trebalo da se unesei broj pomnozi sa 1.4 i rezultat ispise u jTekstField3
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                          int a; double b; a= Integer.parseInt(jTextField1.getText() ); b= 1.4 * a; jTextField3.setText ("" +b);

meni se desava slijedece:
kad unesem broj 1 rezultat je 1.4,dakle uredu
kad unesem broj 2 rezultat je 2.8,opet uredu
kad unesem broj 3 rezultat je 99999999999 sto svakako nije uredu
i tako dalje
za 4 rezultat je 5.6
za 5 rezultat je 7.0
za 6 rezultat je opet 999999999
za 7 isto 999999
onda opet radi za 8,9,10, a za 11 opet izbacuje to 9999999
u cemu je tu problem?

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Ako upišeš 3, rezultat sigurno nije 99999999999, nego 4.199999999999. Skoro sigurno ti je kontrola jTextField3 uska, pa se ne vidi kompletna vrednost, nego samo zadnji brojevi. Klikni mišem na jTextField3 i idi na početak teksta (pomeraj se strelicama ili pritisni HOME taster).

Rad sa podacima koji nemaju fiksni broj decimalnih mesta nije baš 100% precizan. Predlažem ti da rezultat formatiraš tako da ti uvek prikazuje samo određeni broj decimalnih mesta (recimo 2). Pogledaj malo kako radi DecimalFormat klasa ili String.format funkcija.

offline
  • Pridružio: 01 Feb 2014
  • Poruke: 92

Citat:Ako upišeš 3, rezultat sigurno nije 99999999999, nego 4.199999999999
Da,shvatio sam to Very Happy
samo mi nije jasno zasto 3*1.4 ne napise kao tacno 4.2 kad realno i jeste tako
kako oda da podesim to zaokruzivanje decimala?

offline
  • Dr SiGn  Male
  • Stručni saradnik
    Windows
  • Pridružio: 11 Jul 2005
  • Poruke: 1149
  • Gde živiš: Beograd

Napravi objekat klase DecimalFormat

DecimalFormat df = new DecimalFormat("#.##");

Kad hoces da ispises rezultat uradi ovako

jTextField3.setText(" " + df.format(b));

http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

offline
  • Pridružio: 01 Feb 2014
  • Poruke: 92

Citat:Napravi objekat klase DecimalFormat

DecimalFormat df = new DecimalFormat("#.##");


da,istrazivao sam malo po netu i pronasao taj nacin,medjutim kad uradim tako onda mi izbacuje gresku kod ucitavanja broja a
   a= input.nextInt();
vjerovatno zato sto nema vise onog :
Scanner input = new Scanner (System.in);
a ja ne znam sa cim u ovom slucaju da zamijenim to input.nexInt()
tek sam pocetnik pa se ne snalazim bas najbolje -.-"

bilo kako bilo uspio sam to da rjesim na slijedeci nacin
   int a;    double b;    System.out.println ("unesi a");    a= input.nextInt();     b= 1.4 * a;     double rounded=Math.round(b*100)/100.0;    System.out.print ("" +rounded); } }


svejedno volio bih da naucim i ovaj preko DecimalFormata,pa ako mi mozes reci sta onda da koristim u prilikom ovog nacina preko klase DecimalFormat umjesto tog a=input.nextInt();
hvala Very Happy

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

kibo95 ::Citat:Ako upišeš 3, rezultat sigurno nije 99999999999, nego 4.199999999999
Da,shvatio sam to Very Happy
samo mi nije jasno zasto 3*1.4 ne napise kao tacno 4.2 kad realno i jeste tako
kako oda da podesim to zaokruzivanje decimala?

Problem je što postoji beskonačno mnogo realnih brojeva, a računar ima konačno mnogo bajtova za čuvanje broja. Zbog toga dolazi do aproksimacije brojeva sa plivajućim zarezom. Više o tome možeš pronaći ovde: http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems

offline
  • Dr SiGn  Male
  • Stručni saradnik
    Windows
  • Pridružio: 11 Jul 2005
  • Poruke: 1149
  • Gde živiš: Beograd

Evo konzolnog primera:

int a;         double b;         Scanner input = new Scanner(System.in);         DecimalFormat df = new DecimalFormat("#.##");                 System.out.println("unesi a");                 a = input.nextInt();         b = a * 1.4;                 System.out.println("Rezultat: " + df.format(b));

Sa objektom input,klase Scanner unosis broj koristeci metodu nextInt(). Sa DecimalFormat vrsis formatiranje rezultata.

Ko je trenutno na forumu
 

Ukupno su 1354 korisnika na forumu :: 28 registrovanih, 3 sakrivenih i 1323 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: aleksandarbl, amaterSRB, Andrija357, Atomski čoban, Bane san, Bobrock1, Boris BM, Dorcolac, drimer, Georgius, Ivica1102, Lukaaa, Mi lao shu, MiroslavD, mrav pesadinac, Panter, pein, Posmatrac77OKB, raptorsi, ruma, S2M, Sloven, taz1cl, vasa.93, vladulns, wolf1, zlatkoa987, zlaya011