[ gagacar @ 08.07.2013. 12:42 ] @
Potrebno mi je da prebacim podatak iz jednog tekstualnog polja jedne forme u drugu.

Imam formu Roba i formu KategorijeRobe. U formi Roba kliknem na dugme, otvara se forma KategorijeRobe (forma Roba ostaje sve vreme otvorena), biram kategoriju u formi KategorijeRobe , kliknem na dugme Izaberi u formi KategorijeRobe, forma KategorijeRobe se zatvara, a vrednost se ne prenosi u formu Roba.

Primer koda:

forma Roba

Code:


    public frmPromeniRobu(String IDRobe, String IDKategorije, String IDPoreskeStope) {
        initComponents();
        conn = javaconnect.ConnectDB();
        
         Promeni_Robu(IDRobe, IDKategorije, IDPoreskeStope); //funckija koja izvlaci podatke iz baze na osnovu tri vrednosti
         
         txt_id_kategorije.setText(IDKategorije);
         
         System.out.println("Konacna kategorija =: " + txt_id_kategorije.getText()); // ovde ispisjue vrednost koju sam izabrao
         
    }



forma KategorijeRobe

Code:

 private void cmd_IzaberiActionPerformed(java.awt.event.ActionEvent evt) {                                            
     
            frmPromeniRobu frm = new frmPromeniRobu("", txt_kategorija_pretraga_id.getText(),"");
          
             //frm.setVisible(true);

            close();
}



Ono sto je cudno je da u println u formi Roba, se lepo ispisuje preuzeta vrednost, u samoj formi, tj. u polju se ne ispisuje (ostaje stara vrednost).

A ako u cmd_IzaberiActionPerformed omogucim da se izvrsi frm.setVisible(true) onda on prebaci vrednost, ali otvori drugu formu Roba. Onda imam otvorenu formu Roba sa starim podacima, i jos jednu otvorenu formu Roba samo sa novim preuzetim podatkom.

Gde gresim? Hvala.

[ Radovan__III @ 08.07.2013. 18:01 ] @
Ovo je jedan pravi skolski primer problema i moze se resiti na vise nacina nacina :

1. Najverovatnije je ako je ovo neki skolski zadatak da se od tebe zahteva da iskoristis singlton patern, tj posebnu klasu ciji ce objetki imati samo jedno pojavljivnanje i preko istog bi mogao da prenosis podatke i vrsis komunikaciju kroz vise prozora

2. Moguc nacin je i da prenosis referencu sa prvog prozora na drugi kroz npr konstruktor i onda na neki dogadjaj pozoves metodu iz prve forme koja ce da prikaze podateke ( pogledaj npr JDialogForm tu je ovaj princip preko konstruktora vec primenjen )

3. Ne tako dobar nacin ali veoma jednostavan je da napravis jos jednu klasu u njoj stavis par staticnih atributa tipa String i kada kliknes na da zatvoris formu tom atributu dodelis vrednost, posle u prvoj formi procitas iz tog atributa vrednost i to je to. ( ovo je quick fix i ne zahteva mnogo promena koda ali je daleko od dobrog resenja )

[ gagacar @ 09.07.2013. 10:23 ] @
Radovane, nije u pitanju skolski zadatak.

Da li mozda imas neki primer koda, kako bi mogao to da uradim?
[ Radovan__III @ 09.07.2013. 16:12 ] @
Evo male pomoci za svaki nacin :
1. Ovde imas detaljno opisano http://www.javaworld.com/javaw...03/jw-0425-designpatterns.html
2. Fokusiraj se na drugi i treci konstruktor u listi http://docs.oracle.com/javase/6/docs/api/javax/swing/JDialog.html
3. Evo primera kako dve klase komuniciraju preko staticnih varijabli http://www.caveofprogramming.c...tatic-variables-what-are-they/
[ gagacar @ 17.07.2013. 10:38 ] @
Zahvaljujem...
[ gagacar @ 18.07.2013. 12:23 ] @
Probao sam preko Singleton Pattern i opet se ne ispisuje vrednost u textboxu.

Nasao sam na netu neke primere pa sam pokusao sledece:

Primer koda Singleton Pattern

Code:


class Foo {
    private static Foo instance; // only one of these!
    private static String name;
 
    // Hide the constructor - make it private.
    private Foo() {
    name = null;
    // other stuff...
    }
 
    // Users call this method, not the constructor.
    public static Foo getInstance() {
    if(instance == null) {
        instance = new Foo();
    }
    return instance;
    }
 
    public void setName(String name) {
    this.name = name;
    }
    public String getName() {
    return name;
    }
}



u formu iz koje se prebacuje vrednost, sam postavio kada se klikne na dugme

Code:

private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
      String a = naziv_polja.getText();
      Foo f1 = Foo.getInstance();
      f1.setName(a);
}




a u formu u koju treba da se prebaci vrednost imam


Code:


  public static String xyz= null;
  
   public static String someOtherMethod() {
        System.out.println(Foo.getInstance().getName()); // lepo se ispisuje vrednost
        String a =  Foo.getInstance().getName();
        a = "" + a;
        
        
        if((a.equals(null) || a.equals("null")))
            return null;
        else
            return a;
       
    } 


 public formaA() {
        initComponents();
        conn = javaconnect.ConnectDB();
       ....

        ispisi_vrednosti_iz_baze();     
   
        String x = someOtherMethod() ;
        this.polje_u_koje_se_upisuje.setText(x); // polje ostaje praznooooo!!!

        System.out.println(x); // Ovde se lepo ispisuje vrednost
}

private void spisi_vrednosti_iz_baze()
    {
    //ovde izvlaci vrednosti iz baze i upisuje ih u polja

    }



Drugim recima, ne mogu nikako da "nateram" kod da upise vrednost u polje, u System.out.println se lepo ispisuje ali polje je uvek prazno...
[ Radovan__III @ 18.07.2013. 21:44 ] @
Ok, onda ovde imamo neki drugi problem , uvek kad imas ovako nesto sto nisi siguran zasto se na neki nacin pogresno izvrsava mozes da probas da postavis brake point i da proveris stanje variabli u odredjenom trenutku.

Moguce je da je problem u polju u kome zelis nesto da ispises, mozda imas pogresnu referencu, mozda je pogresnog tipa itd, jednostavno dodaj nesto ovako

Code:
 String x = someOtherMethod() ;
x = "test";
this.polje_u_koje_se_upisuje.setText(x); // polje ostaje praznooooo!!!
System.out.println(x); // Ovde se lepo ispisuje vrednost


Ukoliko se test ne ispise u polju, onda moras da proveris samo polje
[ gagacar @ 19.07.2013. 08:34 ] @
Evo ovako, testirao sam i problem je sledeci...

Kada se pokrene aplikacija, odnosno kada se otvori forma A, onda se vrednost "test" (ili ispise null, ako nisam ubacio x = "test") odmah upiše u odgovarajuće polje forme A?! Zasto? Nemam pojma!

Trebalo bi da se upiše u odgovarajuće polje forme A tek kada udjem u Formu B kliknem na dugme "Izaberi".

Kada zatvorim formu A pa je ponovo otvorim, onda stoji vrednost koja je trebalo da bude ispisana u prethodnoj situaciji itd...

drugim recima...
Ovrorim formu A, ispise se "test", otvorim formu B, u njoj izaberem polje "test2", kliknem na dugme, ne desava se nista. Ponovo otvorim formu A, u odgovarajuće polje pise "test2"...


Kao da kasni jedan korak.

[Ovu poruku je menjao gagacar dana 19.07.2013. u 09:46 GMT+1]
[ gagacar @ 26.08.2013. 13:29 ] @
Nije valjda da na celom forumu nema nikog ko može da mi pomogne?
[ srdrazic @ 26.08.2013. 17:37 ] @
E na ovom ćeš teško naći nekog da ti pomogne!?
Samo ti guraju literaturu.
[ nemnesic @ 26.08.2013. 18:32 ] @
Nisam radio swing jedno 5 godina sigurno ali da probam da ti pomognem:

Tvoj primer:

jFrame1 - jPanel1 - jTable1 = ovu tabelu hoces da refreshujes.

jFrame2 - jPanel2 - jButton = ovo je frame gde kada kliknes jButton jTable1 se refreshuje

Moguce resenje:
Kada otvaras jFrame2 prosledi mu jPanel1, i onda refreshuj?

i sada neki pseudo code

Code:

jFrame2 = new JFrame(Jframe1.this).getJInternalFrame().setVisible(true)

[ blekmor @ 26.08.2013. 23:23 ] @
Nisi bas fino obrazlozio problem, ili ga ja nisam bas dobro shvatio.
Pretpostavljam da si zaglavio sa standardnim Swing problemom repaint-ovanja komponenti.
Pogledaj sledeci post :
http://www.elitesecurity.org/t...rikazom-JPanel-unutar-Listener

Ukratko i bez puno detaljisanja zasto i kako (citaj kasnije zasto ej to tako) - Swing komponente nece uvjek osvjeziti prikaz. Imas JTextField i kazes u (u runtime-u) da promjeni tekst...
Tekst ce zaista da se promjeni ali to nece biti ispisano, posto komponenta ne zna da treba da se osvjezi i programer mora to da uradi rucno. Na srecu to je prilicno jednostavno.

Jednostavan primjer:
http://www.java2s.com/Code/Jav...thodtodynamicallyupdatethe.htm
[ gagacar @ 27.08.2013. 10:27 ] @
Probacu opet, malo preciznije da obrazlozim, tj. konkretno....

Imamo jframe Roba i jframe KategorijeRobe.

Jframe Roba ima nekoliko textboxova: Šifra, Opis, JedinicaMere, Kategorija.

Pored textboxa Kategorija se nalazi dugme "Izaberi kategoriju" i klikom na dugme se otvara novi jframe KategorijeRobe, a jframe Roba se ne zatvara nego i dalje ostaje vidljiv.

U jframe KategorijeRobe se nalazi spisak svih kategorija, i dugme "OK". Klikom na dugme OK, treba da se naziv selektovane kategorije iz jframe KategorijeRobe prebaci u textbox Kategorija koji se nalazi u jframe Roba.



Kada idem preko singleton pattern, u konzoli mi ispisuje naziv selektovane kategorije koju sam izabrao, ali u textboxu Kategorija koji se nalazi u jframe Roba i dalje ostaje stara vrednost. E sada kada zatvorim jframe Roba, pa ga ponovo otvorim, on mi u textboxu Kategorija ispisuje vrednost koju je trebao malopre da ispiše, i tako uvek, ako ponovo zatvorim pa otvorim opet će ispisivati novu Kategoriju.

Znači radi obrnuto, u trenutku kada treba da ispiše naziv nove kategorije, on ispisuje onu staru...

U nekom od prethodnih postova se nalazi cod koji sam koristio.

Evo recimo po koracima kako bi to izgledalo

http://s22.postimg.org/p53074p01/PRIMER_DVE_FORME.gif

1. unosi se sifra robe, opis, jedinica mere
2. klikne se na dugme izaberi kategoriju robe
3. otvara se jframe kategorija robe, i selektuje se odgovarajuci red u jtable.
4. klik na ok i upisuje se naziv kategorije u jframe Roba (ovaj korak ne radi, ispravno prenosi selektovanu vrednost, ali je ne upisuje).



[Ovu poruku je menjao gagacar dana 27.08.2013. u 15:43 GMT+1]
[ blekmor @ 27.08.2013. 21:50 ] @
Ok, jasno.
Prilicno sam siguran da je problem sa repaint-ovanjem kontejnera, kao sto sam napisao u prethodnom postu (procitaj ga jos jednom i pogledaj onaj link).
Znaci nakon sto promjenis tekst u textfield-u na JFrame-u Roba treba da uradis revalidate. Znaci ukoliko imas referencu na JFrame Roba koja se zove "roba" uradices (nakon sto promjenis tekst u textfield-u) roba.getContentPane().revalidate(). To ce da osvjezi citav JFrame i ispisati ono sto treba.
Pozdrav
[ iglig @ 28.08.2013. 23:42 ] @


U prilogu ti šaljem i Eclipse projekat, klase su unutar istog paketa. Pitaj ukoliko ti neki koncept nije jasan.
[ gagacar @ 29.08.2013. 14:03 ] @
Ovo deluje fenomenalno...

jasno mi je kako sta radi....

sada preostaje da ovaj kod implementiram u svoj kod... Glupo je da radim copy/paste, a imam i jos nekih dodatnih opcija...


Kada probam da ubacim sledeci kod u kategorije robe

Code:


frmRoba.izaberiKategoriju((String) dtm.getValueAt(tblKategorijeRobe.getSelectedRow(), 1));



izbacuje mi da ne moze da pronadje klasu frmRoba, iako sam definisao

Code:


final Roba frmRoba = (this);



isto tako mi u jframe Roba izbacuje gresku za dugme Izaberi

Code:

KategorijeRobe frmKatRobe = new KategorijeRobe(frmRoba);
                frmKatRobe.setLocationRelativeTo(null);
                frmKatRobe.setVisible(true);




kaze da ne moze da pronadje frmRoba.

Da li zato sto mi je dugme Izaberi u okviru private void (posto ih kreiram preko dizjna)?
[ iglig @ 29.08.2013. 20:10 ] @
Objekat (instanca) klase Roba pravi objekat klase KategorijeRobe (frmKatRobe) i tom prilikom konstruktoru KategorijeRobe kao parametar šalje informaciju o tome koji je to konkretan objekat (klase Roba) u memoriji koji sadrži txtField koji bi trebalo izmeniti.
Code:
KategorijeRobe frmKatRobe = new KategorijeRobe(frmRoba);

frmRoba predstavlja referencu na objekat, formu koja je porkenula jFrame klase KategorijaRobe, a definisana je u samom konstruktoru klase Roba:
Code:
final Roba frmRoba = (this);

Takođe je neophodno da barem jedan od konstruktora klase KategorijaRobe kao argument prihvata referencu ka objektu (jFrame-u) klase Roba, koji ga je i stvorio:
Code:
public KategorijeRobe(final Roba frmRoba){}

Pošto je loša praksa da objekat druge klase prčka po poljima prve koriste se geteri i seteri. Konkretno, u ovom primeru klasa Roba poseduje seter za odgovarajuće polje (txtField):
Code:
public void izaberiKategoriju(String izabranaKategorija) {
        txtKategorija.setText(izabranaKategorija);
    }

Dakle polje je označeno kao private, a seter kao public (radi vidljivosti u drugim klasama). Pogledaj na netu šta je "POJO" pa primeni u svom kodu.
Ovde je posao klase Roba završen, uspešno je kreirala nov objekat (instancirala) frmKatRobe i obezbedila seter za odgovarajuće polje. Sve što je ostalo da uradi frmKatRobe jeste da izabere odgovarajući String (tako je definisano u seteru izaberiKategoriju()) i setuje ga:
Code:
frmRoba.izaberiKategoriju((String) dtm.getValueAt(tblKategorijeRobe.getSelectedRow(), 1));

nad timI_TimObjektom.namestiNazivKategorije(kastuj u String vrednost koju ćeš naći u modelu tabele na poziciji koja odgovara izabranom redu unutar tabele, i koloni 1 (pošto nam nije od interesa redni broj kategorije robe)).

Ovo bi bio ceo tok rešavanja tog dela problema i možeš ga implementirati na ovaj a par drugih načina. Meni ovaj deluje najlogičnije jedino što nisam odmah propisno nazvao seter za txtField, umesto izaberiKategoriju() bi trebalo da piše setTxtField (ali stoji ovako radi lakšeg razumevanja).
Mora malo da se radi na OOP teoriji, da naučiš na koje sve načine možeš da prosleđuješ parametre, na koje pozivaš metode, kako se ponašaju promenljive klasa, a kako objekata i slično, u suprotnom ćeš lutati i nećeš biti zadovoljan. Hajd pokušaj ponovo pa pitaj ako je još negde zapelo.
[ gagacar @ 06.09.2013. 08:50 ] @
Hvala na objasnjenju.

Prvi deo mi je jasan. Ono sto mi nikako ne ide jeste poslednji kod u tvom objasnjenju.

Code:

frmRoba.izaberiKategoriju((String) dtm.getValueAt(tblKategorijeRobe.getSelectedRow(), 1));


frmKatRobe sam kreirao preko dizajnera i samim tim dugme OK je isto tako kreirano. Kako da umetnem da mi kod koji kreira dugme, koji su poslao

Code:

JButton btnOk = new JButton("OK");
        btnOk.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                frmRoba.izaberiKategoriju((String) dtm.getValueAt(tblKategorijeRobe.getSelectedRow(), 1));
                setVisible(false);
                dispose();
            }
        });


ubacim u

Code:


 private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {                                            
    
    
    }  


ako probam da prekopiram javnu funkciju, izbacuje mi frmRoba kao nedefinisanu promenljivu, a ne znam kako da je definisem.


Ili jos bolje, kako da postavim da mi se gore difinisano dugme OK vidi u frmKatRobe?


[Ovu poruku je menjao gagacar dana 06.09.2013. u 10:52 GMT+1]
[ iglig @ 07.09.2013. 00:59 ] @
Nemam uvid u ceo tvoj kod pa ne znam gde je zapelo. Sve komponente uključujući referencu ka početnom ekranu frmRoba su inicijalizovane unutar konstruktora KategorijeRobe a pošto je frmRoba prosleđen konstruktoru kao parametar, frmRoba je vidljiv svim komponentama unutar konstruktora. Ukoliko u sklopu konstruktora pozivaš metodu koja bi trebalo da koristi frmRoba a koju si definisao izvan konstruktora, onda toj metodi moraš proslediti i frmRoba jer u suprotnom dobijaš spomenutu grešku. Jedino još što mi pada na pamet jeste da nisi dobrim redosledom ispisao komponente jer se ne može pozivati promenljiva koja nije predhodno definisana u odgovarajućem delu toka programa.
*dopuna
Čitam ponovo tvoj post i pretpostavljam da si celu klasu napravio pomoću vizarda. Ukoliko je to slučaj onda je IDE napravio defaultni konstruktor bez parametara, dodaj samo ovo u zagradi i onda će btn znati za frmRoba ukoliko nisi menjao kod koji je IDE generisao, odnosno btnOk se nalazi i dalje unutar konstruktora.
Code:
public KategorijeRobe(final Roba frmRoba) {
}

Pošalji ceo projekat ukoliko nešto od ovoga nije rešilo problem.
[ gagacar @ 09.09.2013. 08:40 ] @
Tako je. Klasa je kreirana preko carobnjaka.
Evo celog koda za kategoriju robu.

Primetih da klasa ima drugaciji naziv u odnosu na prethodne postove, ali nadam se da ti nece praviti problem.

Code:


import javax.swing.*;
import java.sql.*;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import java.util.*;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.applet.Applet;

import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.Vector;

import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;

import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;

import java.awt.Color;
import java.awt.Font;

import java.text.DecimalFormat;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
 

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;

public class frmKategorije extends JFrame {

    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement pst = null;
    ResultSet rss = null;
    PreparedStatement psts = null;
    Statement stmt = null;
    private static final long serialVersionUID = 1L;
    

    /** Creates new form frmKategorije */
    public frmKategorije(final frmRoba frmRRobe) {
        initComponents();



        conn = javaconnect.ConnectDB();

        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        this.setLocation(dim.width / 2 - this.getSize().width / 2, dim.height / 2 - this.getSize().height / 2);
        this.setResizable(false);
        String z = "";
        txt_id_robe.setText(z);
        String y = txt_kategorija_pretraga.getText();

        
        IspisiKategorije(y);


    }

    public void close() {
        WindowEvent winClosingEvent = new WindowEvent(this, WindowEvent.WINDOW_CLOSING);
        Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
    }

    private void IspisiKategorije(String x) {
        try {



            String sqlr3 = "";

            if (x.equals("")) {
                sqlr3 = " SELECT IDKategorije AS ID, Kategorija  FROM Kategorije    ";
            } else {
                sqlr3 = " SELECT IDKategorije AS ID, Kategorija  FROM Kategorije WHERE Kategorija like '%" + x + "%'    ";
            }

            pst = conn.prepareStatement(sqlr3);
            rs = pst.executeQuery();

            System.out.println("sqk =: " + sqlr3);

            while (rs.next()) {

                Tbl_Kategorije.setModel(DbUtils.resultSetToTableModel(rs));

                TableColumn col0 = Tbl_Kategorije.getColumnModel().getColumn(0);
                col0.setPreferredWidth(10);
                TableColumn col1 = Tbl_Kategorije.getColumnModel().getColumn(1);
                col1.setPreferredWidth(90);



            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        Tbl_Kategorije = new javax.swing.JTable();
        txt_kategorija_pretraga_id = new javax.swing.JTextField();
        txt_kategorija_pretraga = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        cmd_Trazi = new javax.swing.JToggleButton();
        cmd_Izaberi = new javax.swing.JToggleButton();
        txt_id_robe = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Kategorije");
        setAlwaysOnTop(true);

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        Tbl_Kategorije.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        Tbl_Kategorije.setName("Tbl_Kategorije"); // NOI18N
        Tbl_Kategorije.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                Tbl_KategorijeMouseClicked(evt);
            }
        });
        Tbl_Kategorije.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                Tbl_KategorijeKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(Tbl_Kategorije);

        txt_kategorija_pretraga_id.setEditable(false);
        txt_kategorija_pretraga_id.setName("txt_kategorija_pretraga_id"); // NOI18N

        txt_kategorija_pretraga.setName("txt_kategorija_pretraga"); // NOI18N

        jLabel1.setText("Pretraga");
        jLabel1.setName("jLabel1"); // NOI18N

        cmd_Trazi.setText("Traži");
        cmd_Trazi.setName("cmd_Trazi"); // NOI18N
        cmd_Trazi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmd_TraziActionPerformed(evt);
            }
        });

        cmd_Izaberi.setText("Izaberi");
        cmd_Izaberi.setName("cmd_Izaberi"); // NOI18N
        cmd_Izaberi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmd_IzaberiActionPerformed(evt);
            }
        });

        txt_id_robe.setName("txt_id_robe"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 530, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(txt_kategorija_pretraga_id, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE)
                                .addGap(51, 51, 51)
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(cmd_Izaberi)
                                .addGap(103, 103, 103)))
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(txt_kategorija_pretraga, javax.swing.GroupLayout.PREFERRED_SIZE, 301, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(cmd_Trazi))
                            .addComponent(txt_id_robe, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cmd_Izaberi)
                    .addComponent(txt_id_robe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txt_kategorija_pretraga_id, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txt_kategorija_pretraga, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1)
                    .addComponent(cmd_Trazi))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(62, 62, 62))
        );

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

    private void Tbl_KategorijeMouseClicked(java.awt.event.MouseEvent evt) {                                            
        // TODO add your handling code here:

        int row = Tbl_Kategorije.getSelectedRow();
        String Table_click = (Tbl_Kategorije.getModel().getValueAt(row, 0).toString());


        try {

            String sql_kom = "SELECT IDKategorije, Kategorija FROM Kategorije WHERE IDKategorije  =  " + Table_click + "  ";
            pst = conn.prepareStatement(sql_kom);
            rs = pst.executeQuery();

            if (rs.next()) {

                String add1 = rs.getString("IDKategorije");
                txt_kategorija_pretraga_id.setText(add1);



                String add3 = rs.getString("Kategorija");
                txt_kategorija_pretraga.setText(add3);



            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);
        }



    }                                           

    private void Tbl_KategorijeKeyReleased(java.awt.event.KeyEvent evt) {                                           
        // TODO add your handling code here:

        int row = Tbl_Kategorije.getSelectedRow();
        String Table_click = (Tbl_Kategorije.getModel().getValueAt(row, 0).toString());


        try {

            String sql_kom = "SELECT IDKategorije, Kategorija FROM Kategorije WHERE IDKategorije  =  " + Table_click + "  ";
            pst = conn.prepareStatement(sql_kom);
            rs = pst.executeQuery();

            if (rs.next()) {

                String add1 = rs.getString("IDKategorije");
                txt_kategorija_pretraga_id.setText(add1);



                String add3 = rs.getString("Kategorija");
                txt_kategorija_pretraga.setText(add3);



            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
    }                                          

    private void cmd_TraziActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        String y = txt_kategorija_pretraga.getText();

        IspisiKategorije(y);

    }                                         

    private void cmd_IzaberiActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
         int row = Tbl_Kategorije.getSelectedRow();
                 String Table_click = (Tbl_Kategorije.getModel().getValueAt(row, 0).toString());
                 
                 
        frmRRobe.izaberiKategoriju(Table_click); //** Ovde prijavljuje gresku  frmRRobe??????? *///
                setVisible(false);
                dispose();
    }                                           

    /**
     * @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/jav.../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(frmKategorije.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(frmKategorije.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(frmKategorije.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(frmKategorije.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 frmKategorije(x).setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JTable Tbl_Kategorije;
    private javax.swing.JToggleButton cmd_Izaberi;
    private javax.swing.JToggleButton cmd_Trazi;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField txt_id_robe;
    private javax.swing.JTextField txt_kategorija_pretraga;
    private javax.swing.JTextField txt_kategorija_pretraga_id;
    // End of variables declaration                   
}


[ iglig @ 10.09.2013. 01:52 ] @
Pročitaj komentare, prepravio sam da radi ali vidiš da je kod vrlo konfuzan i to dobrim delom zbog samog Designera, pretpostavljam da koristiš NetBeans - ne valja ništa, instaliraj WindowBuilder za Eclipse jer proizvodi daleko čitljiviji i optimizovaniji kod. Dakle glavni problem je što forma nije bila vidljiva na odgovarajućim mestima. Svaka čast za optimizam pošto vidim da dugo rešavaš ovaj problem i ne odustaješ ali ne može se samo kliktati po dizajneru, nisi ni svestan koliko ti je iskomplikovao život. Kad budeš pročitao 200-inak stranica bilo koje knjige koja se bavi Javom bićeš toliko besan na sebe što nisi ranije počeo sa učenjem da ćeš lupati glavom o zid po saznanju da si sve ovo mogao ručno da iskodiraš za četrdesetak minuta a Designer da iskoristiš za lakše i brže kreiranje UI-a. Veruj mi da ti sve ovo pričam iz najboljih namera, ovo je nešto što svi programeri moraju da znaju i ako imaš daljih aspiracija moraš okrenuti novi list.

Code:
import javax.swing.*;
import java.sql.*;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import java.util.*;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.applet.Applet;

import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.Vector;

import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;

import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;

import java.awt.Color;
import java.awt.Font;

import java.text.DecimalFormat;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
 

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
//Nazivi klasa pocinju velikim slovima, dakle FrmKategorije umesto frmKategorije.
public class FrmKategorije extends JFrame {

    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement pst = null;
    ResultSet rss = null;
    PreparedStatement psts = null;
    Statement stmt = null;
    private static final long serialVersionUID = 1L;
    

    /** Creates new form frmKategorije */
    //kad se prosledjuje parametar prvo ide tip klase (eto zasto nazivi klase pocinju VelikimSlovom), pa potom ide ime objekta, koji se pise malimSlovima
    public FrmKategorije(final Roba frmRoba) {
        //unutar metode initComponents nije vidljiva frmRoba pa je neophodno da se forma prosledi kao parametar
        initComponents(frmRoba);



        conn = javaconnect.ConnectDB();

        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        this.setLocation(dim.width / 2 - this.getSize().width / 2, dim.height / 2 - this.getSize().height / 2);
        this.setResizable(false);
        String z = "";
        txt_id_robe.setText(z);
        String y = txt_kategorija_pretraga.getText();

        
        IspisiKategorije(y);


    }

    public void close() {
        WindowEvent winClosingEvent = new WindowEvent(this, WindowEvent.WINDOW_CLOSING);
        Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
    }

    private void IspisiKategorije(String x) {
        try {
            String sqlr3 = "";
            if (x.equals("")) {
                sqlr3 = " SELECT IDKategorije AS ID, Kategorija  FROM Kategorije    ";
            } else {
                sqlr3 = " SELECT IDKategorije AS ID, Kategorija  FROM Kategorije WHERE Kategorija like '%" + x + "%'    ";
            }

            pst = conn.prepareStatement(sqlr3);
            rs = pst.executeQuery();

            System.out.println("sqk =: " + sqlr3);

            while (rs.next()) {
                Tbl_Kategorije.setModel(DbUtils.resultSetToTableModel(rs));
                TableColumn col0 = Tbl_Kategorije.getColumnModel().getColumn(0);
                col0.setPreferredWidth(10);
                TableColumn col1 = Tbl_Kategorije.getColumnModel().getColumn(1);
                col1.setPreferredWidth(90);



            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents(final Roba frmRoba) {

        jScrollPane1 = new javax.swing.JScrollPane();
        Tbl_Kategorije = new javax.swing.JTable();
        txt_kategorija_pretraga_id = new javax.swing.JTextField();
        txt_kategorija_pretraga = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        cmd_Trazi = new javax.swing.JToggleButton();
        cmd_Izaberi = new javax.swing.JToggleButton();
        txt_id_robe = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Kategorije");
        setAlwaysOnTop(true);

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        Tbl_Kategorije.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        Tbl_Kategorije.setName("Tbl_Kategorije"); // NOI18N
        Tbl_Kategorije.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                Tbl_KategorijeMouseClicked(evt);
            }
        });
        Tbl_Kategorije.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                Tbl_KategorijeKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(Tbl_Kategorije);

        txt_kategorija_pretraga_id.setEditable(false);
        txt_kategorija_pretraga_id.setName("txt_kategorija_pretraga_id"); // NOI18N

        txt_kategorija_pretraga.setName("txt_kategorija_pretraga"); // NOI18N

        jLabel1.setText("Pretraga");
        jLabel1.setName("jLabel1"); // NOI18N

        cmd_Trazi.setText("Traži");
        cmd_Trazi.setName("cmd_Trazi"); // NOI18N
        cmd_Trazi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmd_TraziActionPerformed(evt);
            }
        });

        cmd_Izaberi.setText("Izaberi");
        cmd_Izaberi.setName("cmd_Izaberi"); // NOI18N
        cmd_Izaberi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                //dakle metodi cmd_IzaberiActionPerformed() smo prosledili frmRoba ali dzaba kad ni initComponents() ne zna za frmRoba,
                //znaci idemo u sam konstruktor klase i prosledjujemo frmRoba metodi initComponents(frmRoba)^^
                cmd_IzaberiActionPerformed(evt, frmRoba);
            }
        });

        txt_id_robe.setName("txt_id_robe"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 530, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(txt_kategorija_pretraga_id, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE)
                                .addGap(51, 51, 51)
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(cmd_Izaberi)
                                .addGap(103, 103, 103)))
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(txt_kategorija_pretraga, javax.swing.GroupLayout.PREFERRED_SIZE, 301, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(cmd_Trazi))
                            .addComponent(txt_id_robe, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cmd_Izaberi)
                    .addComponent(txt_id_robe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txt_kategorija_pretraga_id, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txt_kategorija_pretraga, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1)
                    .addComponent(cmd_Trazi))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(62, 62, 62))
        );

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

    private void Tbl_KategorijeMouseClicked(java.awt.event.MouseEvent evt) {                                            
        // TODO add your handling code here:

        int row = Tbl_Kategorije.getSelectedRow();
        String Table_click = (Tbl_Kategorije.getModel().getValueAt(row, 0).toString());


        try {

            String sql_kom = "SELECT IDKategorije, Kategorija FROM Kategorije WHERE IDKategorije  =  " + Table_click + "  ";
            pst = conn.prepareStatement(sql_kom);
            rs = pst.executeQuery();

            if (rs.next()) {

                String add1 = rs.getString("IDKategorije");
                txt_kategorija_pretraga_id.setText(add1);



                String add3 = rs.getString("Kategorija");
                txt_kategorija_pretraga.setText(add3);



            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);
        }



    }                                           

    private void Tbl_KategorijeKeyReleased(java.awt.event.KeyEvent evt) {                                           
        // TODO add your handling code here:

        int row = Tbl_Kategorije.getSelectedRow();
        String Table_click = (Tbl_Kategorije.getModel().getValueAt(row, 0).toString());


        try {

            String sql_kom = "SELECT IDKategorije, Kategorija FROM Kategorije WHERE IDKategorije  =  " + Table_click + "  ";
            pst = conn.prepareStatement(sql_kom);
            rs = pst.executeQuery();

            if (rs.next()) {

                String add1 = rs.getString("IDKategorije");
                txt_kategorija_pretraga_id.setText(add1);



                String add3 = rs.getString("Kategorija");
                txt_kategorija_pretraga.setText(add3);



            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
    }                                          

    private void cmd_TraziActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        String y = txt_kategorija_pretraga.getText();

        IspisiKategorije(y);

    }                                         
    //ova metoda ne zna za frmRoba, moras joj je proslediti Roba frmRoba
    private void cmd_IzaberiActionPerformed(java.awt.event.ActionEvent evt, Roba frmRoba) {                                            
        // TODO add your handling code here:
         int row = Tbl_Kategorije.getSelectedRow();
                 String Table_click = (Tbl_Kategorije.getModel().getValueAt(row, 0).toString());
                 
                 
        frmRoba.izaberiKategoriju(Table_click); //** Ovde prijavljuje gresku  frmRRobe??????? *///
        //Naravno kad nije vidljivâ unutar metode, pogledaj gore ^^
                setVisible(false);
                dispose();
    }                                           

    /**
     * @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/jav.../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(frmKategorije.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(frmKategorije.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(frmKategorije.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(frmKategorije.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 frmKategorije(x).setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JTable Tbl_Kategorije;
    private javax.swing.JToggleButton cmd_Izaberi;
    private javax.swing.JToggleButton cmd_Trazi;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField txt_id_robe;
    private javax.swing.JTextField txt_kategorija_pretraga;
    private javax.swing.JTextField txt_kategorija_pretraga_id;
    // End of variables declaration                   
}
[ masahx @ 01.12.2013. 23:25 ] @
neće da mi radi sledeći kod.

ublic static void main(String args[]) {
// ide onaj deo...

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {

pr=new Proba();
new NewJFrame().setVisible(true);
for (int i=0;i<10;i++) {

// jTextArea1.append("po");
jTextArea1.append(pr.sb()); <---ovde javlja gresku NullPointerException


}
}
});


evo i druge dve klase. htela sam da dve klase, tj dve niti upisuju u tekstualni bafer i onda da se to prikaze, ali izbacio mi je kod crvenog dela, a ne znam zasto. stavila sam da je pr static
malo mi je konfuzna poruka, sad ne mogu bolje, izvinite

package proba;

/**
*
* @author
*/
public class Proba extends Thread {

int i;
StringBuffer sb;
Proba2 p2;
/**
* @param args the command line arguments
*/

public void Proba() {

sb=new StringBuffer();
p2=new Proba2(sb);
start();
p2.start();

}
public void run() {
for (i=0; true; i+=2) {

sb.append(i+"/n");
}
}
public String sb() {

return sb.toString();
}


}

package proba;

/**
*
* @author
*/
public class Proba2 extends Thread {

int i;
StringBuffer sb;

public Proba2(StringBuffer sb) {

this.sb=sb;

}

public void run() {

for (i=1;true;i+=2) {

sb.append(i+" ");
}
}

}