Przekazanie wartości pola

Odpowiedz Nowy wątek
2011-08-01 23:12
0

Witam,
mam takie pytanko jak przekazać wartość pola z jednej klasy do drugiej?
Np. mam jedną klasę A

 
Class KlasaA{
public JTable tabela =  new JTable();
public int numerWiersza = tabela.getSelectedRow();
}

i teraz w klasie B chciałbym sprawdzić czy numerWiersza jest np. równy 2. Lub w klasie B chciałbym wyświetlić wartość znajdującą się w zmiennej numerWiersza z klasyA. Próbowałem kilku sposobów ale nie bardzo chiały mi działać :-(
Proszę o porady i wskazówki.

edytowany 1x, ostatnio: madmike, 2011-08-03 03:12

Pozostało 580 znaków

2011-08-01 23:52
bo
0

Jesteś 3457 osobą, która w tym roku zadaje to pytanie na forum.

Kogo przeoczyłem? - bogdans 2011-08-02 09:24

Pozostało 580 znaków

2011-08-01 23:57
0
Class KlasaB {
   KlasaA obiektA = new KlasaA();
   int numer = obiektA.numerWiersza;
}

poprawnie powinieneś zmienne oznaczyć jako private i napisać publiczne metody get i set np:

Class KlasaA{
   private JTable tabela =  new JTable();
   private int numerWiersza = tabela.getSelectedRow();
 
   public int getNumerrWiersza () {
      return numerWiersza;
   }
   public void setNumerWiersza(int numerWiersza) {
      this.numerWiersza = numerWiersza;
   }
   //itd
}
Class KlasaB {
   KlasaA obiektA = new KlasaA();
   int numer = obiektA.getNumerWiersza();
}

Pozostało 580 znaków

2011-08-02 12:16
0

A więc zrobiłem tak jak mówił kolega pk ale dalej nie bardzo chce wyjść.
W klasieA zrobiłem tak:

 
Class KlasaA{
private int numerWiersza=123;
 
    public void setNumerWiersza(int numerWiersza){
        this.numerWiersza=numerWiersza;
    }
 
    public int getNumerWierszWJTable(){
        return this.numerWiersza;
    }
 
......
if (klik.getActionCommand().equals("szukaj nazwy")){
            setNumerWiersza(tabela.getSelectedRow());
            System.out.println(getNumerWierszWJTable());
        }
}
 

A w KlasieB tak:

 
Class KlasaB{
OknoAdmina oknoAdmina= new OknoAdmina();
 
    public void pokazNumerZaznaczonegoWiersza(){
        int numer = oknoAdmina.getNumerWierszWJTable();
        System.out.println(numer);
    }
}

I teraz jest tak, że w klasieA pokazuje dobra wartość a w klasieB pokazuje to co jest przypisane tutaj

 private int numerWiersza=123;

czyli wartość 123. :-(

Pozostało 580 znaków

2011-08-02 13:24
bo
1

Dopiera teraz przeczytałem propozycję @pk_82, ona jest bezsensowna. Jedna z możliwości jest taka, że obiekt KlasyA tworzy obiekt KlasyB

Class KlasaA{
   private JTable tabela =  new JTable();
   private int numerWiersza = tabela.getSelectedRow();
 
   public int getNumerrWiersza () {
      return numerWiersza;
   }
   public void setNumerWiersza(int numerWiersza) {
      this.numerWiersza = numerWiersza;
   }
   ....obiektB = new KlasaB(this);
 
}
Class KlasaB {
   KlasaA parent=null;
   KlasaB(KlasaA parent)
   {
       this.parent=parent;
   }
   int numer = parent.getNumerWiersza();
}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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