Temat: pobieranie tekstu

Chciałbym pobrać tekst z jTextField który znajduje się w innym JFrame, ale wyskakuje mi błąd
Stworzyłem coś takiego:
jTextField1.setText("" + DesktopApplication1View.jTextField2.getText());
Jak to zrobić by działało?Proszę o pomoc

konto usunięte

Temat: pobieranie tekstu

Jaki błąd Ci wyskakuje?
Krzysztof Skrzypczak

Krzysztof Skrzypczak Senior Java
Developer

Temat: pobieranie tekstu

Może spróbuj najpierw pobrać tekst z pierwszego TextField'a do Stringa, a potem wrzuć do drugiego TextField'a. Będziesz widział gdzie jest błąd, czy przy getText(), czy przy setText().Krzysztof Skrzypczak edytował(a) ten post dnia 09.12.10 o godzinie 18:50
Roger Zacharczyk

Roger Zacharczyk Programista (gry,
webserwisy,
aplikacje użytkowe),
fotograf

Temat: pobieranie tekstu

Debugger i nie ma problemu ;)

Temat: pobieranie tekstu

Mój błąd to: "jTextField2 has privete access in desktopplication1.DesktopApplication1View"

konto usunięte

Temat: pobieranie tekstu

Zapoznaj się z modyfikatorami dostępu.

http://en.wikipedia.org/wiki/Java_syntax#Access_modifiers

jTextField2 jest atrybutem prywatnym, nie widać go z zewnątrz klasy.

Temat: pobieranie tekstu

Czy ktoś mógłby mi napisać co muszę zmienić, bo z "wiki" prawie niczego się nie dowiedziałem?
Piotr Nowicki

Piotr Nowicki JFB Systems,
właściciel

Temat: pobieranie tekstu

Julian Karsznia:
Czy ktoś mógłby mi napisać co muszę zmienić, bo z "wiki" prawie niczego się nie dowiedziałem?

napisać publiczną metodę, która pozwoli pobrać obiekt "jTextField2" z klasy, gdzie zadeklarowałeś zmienną tej instancji jako private

i użyć jej zamiast bezpośredniej próby dostępu do instancji zadeklarowanej jako privatePiotr Nowicki edytował(a) ten post dnia 09.12.10 o godzinie 19:48

konto usunięte

Temat: pobieranie tekstu

Julian Karsznia:
Mój błąd to: "jTextField2 has privete access in desktopplication1.DesktopApplication1View"

Znając podstawy angielskiego mogłeś sam sobie odpowiedzieć na to pytanie ;)

jTextField2 ma prywaty (specyfikator) dostępu i chcesz posłużyć się by pobrać z pola zadeklarowanego jako private do pola w innej klasie. Czyli tak jak napisał Piotr - magiczne słówko public rozwiązuje sprawę ;)

konto usunięte

Temat: pobieranie tekstu

Krzysztof Telka:
Czyli tak jak napisał Piotr - magiczne słówko public rozwiązuje sprawę ;)

W Javie rozwiązuje niestety połowicznie. Lepiej przyzwyczaić się do prywatnych atrybutów (przechowywaczy danych) i publicznych akcesorów.

Do autora, to będzie coś w tę mańkę:


private JTextField jTextField2;

public void setField2(JTextField field){
jTextField2 = field;
}

public JTextField getField2(){
return jTextField2;
}


Dzięki temu możesz w pełni kontrolować dostęp do danych. Możesz je uczynić write-only (zdefiniować tylko settera), read-only (zdefiniować tylko gettera), albo inaczej posterować obsługą tego atrybutu.

Ponieważ jednak atrybut ma taką dziką nazwę (nazwaKlasyNumerek), to wnioskuję, że coś tęże zmienną wygenerowało. Jak została stworzona ta klasa? Ręcznie?
Irek Słonina

Irek Słonina programowanie, bazy
danych i linuksy

Temat: pobieranie tekstu

Łukasz Karpuć:
Krzysztof Telka:
Czyli tak jak napisał Piotr - magiczne słówko public rozwiązuje sprawę ;)

W Javie rozwiązuje niestety połowicznie. Lepiej przyzwyczaić się do prywatnych atrybutów (przechowywaczy danych) i publicznych akcesorów.

Do autora, to będzie coś w tę mańkę:


private JTextField jTextField2;

public void setField2(JTextField field){
jTextField2 = field;
}

public JTextField getField2(){
return jTextField2;
}


Netbeansowe projekty nie lubią jak się im miesza w robionych przez klikacza zmiennych.
Lepszą praktyką wydaje się być takie coś:


private JTextField jTextField2;

public void setField2Text(String text){
jTextField2.setText(text);
}

public String getField2Text(){
return jTextField2.getText();
}


lub:


private JTextField jTextField2;

public JTextField getField2(){
return jTextField2;
}


i późniejsze operowanie spoza klasy:
getField2().setText() / getField2.getText()

Temat: pobieranie tekstu

Sory, że piszę jeszcze raz, ale ciągle wyskakuje mi błąd:(
Proszę także o wyrozumiałość, ja dopiero zaczynam zabawę z javą

Stworzyłem taki kod:
JFrame1:

package programik;

public class JFrame1 extends javax.swing.JFrame {

public JFrame1() {
initComponents();
}

@SuppressWarnings("unchecked")

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JFrame1().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JTextField jTextField1;
// End of variables declaration

public void setField1Text(String text){
jTextField1.setText(text);
}

public String getField1Text(){
return jTextField1.getText();
}
}


JFrame2:

public class JFrame2 extends javax.swing.JFrame {


public JFrame2() {
initComponents();
}

@SuppressWarnings("unchecked")

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
TextField.setText(getField2().setText());

}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JFrame2().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JTextField TextField;
private javax.swing.JButton jButton1;
// End of variables declaration

}


Co muszę zmienić??? PROSZĘ O POMOCJulian Karsznia edytował(a) ten post dnia 15.12.10 o godzinie 17:32
Tomasz D

Tomasz D Programista
Java/JEE, freelancer

Temat: pobieranie tekstu

Jaki błąd? Komunikat albo stack trace byłby pomocny.

konto usunięte

Temat: pobieranie tekstu

Gdzie masz definicję JFrame2.getField2()?

// EDIT:


public void setField1Text(String text){
jTextField1.setText(text);
}

public String getField1Text(){
return jTextField1.getText();
}


Coś takiego nie ma sensu. Lepiej zrób metodę, która zwraca obiekt jTextField1 - zapewnisz dostęp do wszystkich metod tejże. No chyba, że to celowe...Łukasz Karpuć edytował(a) ten post dnia 15.12.10 o godzinie 20:36

Temat: pobieranie tekstu

public void setField1Text(String text){
jTextField1.setText(text);
}

public String getField1Text(){
return jTextField1.getText();
}

Coś takiego ty mi podałeś. Kurcze jestem ziolony w tych sprawach. Czy ktoś mógłby mi podać treść dobrego kodu do JFrame1 i JFrame2?

konto usunięte

Temat: pobieranie tekstu

Trochę późno ale z nudów przeglądam wątki.

Zobacz coś takiego na youtube.

http://www.youtube.com/watch?v=LFr06ZKIpSM

Nie wiem jak inni ale ja preferuję NetBeansa, ściągnij sobie to IDE zainstaluj, i troszkę się pobaw, zmienianie nazw zmiennych, edycja testu w elemencie (np żeby nie było JButton1) tylko np DODAJ.
Ten filmik powyżej bardzo pomocny w stawianiu pierwszych kroków, dalej to tylko książka /tutoriale, klepanie kodu i analizowanie.
Pomocne są też kursy javy w postaci Video
http://videokurs.pl i tam sobie poszukaj - masz do wyboru kilka dróg - książki+tutoriale lub video.

Pozdrowienia i niech JVM będzie z Tobą

Temat: pobieranie tekstu

Nie musiałeś się wysilać problem został już dawno rozwiązany:)
I tak dzięki za dobre chęciJulian Karsznia edytował(a) ten post dnia 23.01.11 o godzinie 13:49

Następna dyskusja:

Pobieranie z klawiatury




Wyślij zaproszenie do