0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
1

Текст из JTextField в другой класс

08.04.2014, 15:53. Показов 8036. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как передать текст из JTextField в другой класс?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2014, 15:53
Ответы с готовыми решениями:

Передача данных из JTextField в другой класс
Добрый день, нужно передать строку из JTextField, который находится в одном классе в другой по...

Текст получаемый из jTextField не сравнивается с обычным
Ввожу текст в текстовое поле, нажимаю кнопку, сравниваю его с аналогичной строкой, получаю false ...

Вернуть текст из JTextField по нажатию на JButton
Есть главное окно программы JFrame, при определенном условии появляется еще одно окно JFrame, в...

Как передать текст в label через другой класс ( форму )?
На форме размещена панель на ней лежит label.text. При нажатие на кнопку я хочу чтобы передавался...

10
2 / 2 / 0
Регистрация: 26.12.2013
Сообщений: 44
08.04.2014, 16:00 2
Создай статическую переменную в другом классе и дай ему значение текста JTextField
0
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
08.04.2014, 16:52  [ТС] 3
Так не работает. Через System.out.println() выводится пустая строка.
0
4 / 4 / 5
Регистрация: 17.09.2012
Сообщений: 52
08.04.2014, 20:09 4
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import javax.swing.JButton;
import javax.swing.JTextField;
 
public class testQ {
 
    public static void main(String[] args) {
        JTextField jtf = new JTextField();
        JButton jb = new JButton();
        
        jtf.setText("dfsdfsdf");
        jb.setText(jtf.getText());
        System.out.println(jb.getText());
 
    }
 
}
0
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,926
08.04.2014, 23:59 5
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Main {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.getTextField().getText());
    }
}
 
class A extends JFrame{
    private JTextField textField;
    public A () throws HeadlessException {
        textField =  new JTextField();
        textField.setText("Test message");
    }
 
    public JTextField getTextField() {
        return textField;
    }
}
Добавлено через 2 минуты
ну или так

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Main {
    public static void main(String[] args) {
        A a = new A();
        B b = new B(a);
        
    }
}
 
class A extends JFrame{
    private JTextField textField;
    public A () throws HeadlessException {
        textField =  new JTextField();
        textField.setText("Test message");
    }
 
    public JTextField getTextField() {
        return textField;
    }
}
 
class B {
    private A a;
 
    B(A a) {
        this.a = a;
        System.out.println(a.getTextField().getText());
    }
}
Добавлено через 4 минуты
sprocket, т.е если вы хотите передать что то из одного класса в другой вам надо либо делать это что то public (что крайне не рекомендуется т.к нарушается инкапсуляция) либо каким либо образом передаете в класс "получатель" ссылку на объект класса в котором это что то находится и с помощью этой ссылки вызываете геттер для нужного поля.
1
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
09.04.2014, 13:33  [ТС] 6
Подскажите пожалуйста что я делаю не так?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.awt.EventQueue;
 
 
public class Text {
 
    private JFrame frame;
    private JTextField textField;
 
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Text window = new Text();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
 
    
    public Text() {
        initialize();
    }
 
 
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        
        textField = new JTextField();
        textField.setBounds(10, 62, 135, 20);
        frame.getContentPane().add(textField);
        textField.setColumns(10);
        
        JButton btnNewButton = new JButton("New button");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                SaveText st = new SaveText();
                st.showText();
                
            }
        });
        btnNewButton.setBounds(10, 115, 135, 23);
        frame.getContentPane().add(btnNewButton);
    }
    
    public JTextField getTextField (){
        return textField;
        
    }
}
Java
1
2
3
4
5
6
7
8
9
10
public class SaveText {
    String text;
    
    public void showText(){
        Text t = new Text();
        text = t.getTextField().getText();
        System.out.println(text);
    }
 
}
0
4 / 4 / 5
Регистрация: 17.09.2012
Сообщений: 52
09.04.2014, 13:57 7
Я не понимаю зачем вы запускаете другой поток, это никак не связано с первым вопросом в топике.
Как передавать текст из одного класса в другой:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
public class TestJTextfield {
 
    public static void main(String[] args) {
        JFrame frame = new JFrame("FrameName");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());
        frame.setSize(300, 200);
 
        final JTextField textField = new JTextField("Enter text");
        textField.setPreferredSize(new Dimension(100, 100));
        frame.add(textField);
 
        final JTextArea area = new JTextArea("Old text");
        frame.add(area);
 
        final Text text = new Text();
 
        JButton button = new JButton("Copy");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                area.setText(textField.getText());
                text.setTxt(textField.getText());
            }
        });
        frame.add(button);
 
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
 
}
 
class Text {
    private String txt;
 
    public String getTxt() {
        return txt;
    }
 
    public void setTxt(String txt) {
        this.txt = txt;
        System.out.println(this.txt);
    }
 
}
0
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
10.04.2014, 16:53  [ТС] 8
А можно ли достать текст с помощью функции из другого класса?
Например чтобы в листенере кнопки была функция func() которая описана в классе Text. То есть не используя
Java
1
2
area.setText(textField.getText());
text.setTxt(textField.getText());
0
126 / 113 / 56
Регистрация: 05.12.2012
Сообщений: 463
10.04.2014, 16:55 9
Можно, если функция статична, например.
0
4 / 4 / 5
Регистрация: 17.09.2012
Сообщений: 52
11.04.2014, 11:18 10
Лучший ответ Сообщение было отмечено sprocket как решение

Решение

Или функция должна быть static или объект, у которого вы хотите вызвать метод, должен быть final .
Вообще возьмите и напишите код, а потом спрашивайте у эклипса, почему он подчеркивает некоторые строчки.
1
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
11.04.2014, 16:21  [ТС] 11
Сделал переменную textField static и функцию getTextField() тоже static и заработало как надо.
Как я понял проблема была в том что вызывая объект класса я инициализировал frame, button и textField заново, и данные из textField пропадали.
0
11.04.2014, 16:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2014, 16:21
Помогаю со студенческими работами здесь

Перенос текста из одного JTextField в другой
Извините за ламерский вопрос. Пытаюсь создать приложение, в котором на рамке 2 JTextField и одна...

Из одного файла переместить текст в другой файл с заменой текста на другой
Помогите нужно сделать вот такую вещь заготовка есть но не могу осмыслит как сделать вот это: ...

Как скопировать текст от одной заданной метки до другой из одного текстового файла в другой?
нужно скопировать всё что находится в txt файле ОТ <dekl> ДО </dekl> подскажите пожалуйста, сам...

Область видимости. один класс не видит другой класс
Добрый день! такая проблема. Есть базовый класс Q. От него наследуется 2 класса Р и G. Класс P...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru