Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 13

Слушатель и JLabel

20.04.2017, 13:13. Показов 2016. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему не работает обработчик событий на кнопке - не видит объект write. и как выводит ответ на JLabel ?
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
57
58
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
class GeometryFrame extends JFrame {
    GeometryFrame() {
        int w=500, h=400;
        setTitle("Геометрия");
        setBounds(400,200,w,h);
        setVisible(true);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        CPanel panel = new CPanel(w,h);
        add(panel);
    }
}
 
class CPanel extends JPanel {
           public CPanel(int W, int H) {
             setLayout(null);
             setBounds(0,0,W,H);
 
            JTextField TF = new JTextField();
            TF.setHorizontalAlignment(JTextField.LEFT);
            TF.setBounds(10,20,100,25);
 
            JTextField TF1 = new JTextField();
            TF1.setHorizontalAlignment(JTextField.LEFT);
            TF1.setBounds(10,60,100,25);
 
            JLabel answer = new JLabel("",1);
 
 
            add(TF); add(TF1); add(answer);
 
          //  ActionListener actionListener = new TestActionListener();
 
            JButton btn = new JButton("Сложить");
            btn.setBounds(10,100,100,25);
            btn.addActionListener(TestActionListener);
            add(btn);
         }
}
 
public class TestActionListener implements ActionListener  {
    public void actionPerformed(ActionEvent e) {
        int t, t1, result;
        t = Integer.parseInt(TF.getText());
        t1 = Integer.parseInt(TF1.getText());
        result = t + t1;
        write.setText("Ответ:" + result);
    }
}
class Geometry{
    public static void main(String[] args) {
        new GeometryFrame();
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2017, 13:13
Ответы с готовыми решениями:

Слушатель порта
Доброго времени, ищу софт при помощи которого можно создать (сэмулировать) слушатель порта, т.е. мне надо проверить будет ли откликаеться...

Слушатель событий
Такой вопрос: если несколько раз в коде прописать mcNPC.addEventListener(Event.ENTER_FRAME,f_query);, то реально создастся несколько...

Слушатель на скайп
добрый вечер ! нужна ваша помощь написал программу, которая привязана к скайпу. когда в своей программе что-то меняю то в скайпе тоже...

14
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
20.04.2017, 13:41
Этот код даже не компилируется.
0
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 13
20.04.2017, 13:46  [ТС]
// ActionListener actionListener = new TestActionListener(); - здесь я забыл убрать комментарий, но все же компилируется
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
20.04.2017, 13:50
нет, не компилируется.

если даже убрать комментрий, то btn.addActionListener(TestActionListener ); не будет работать. ибо такой переменной нет.
Не понятно что такое переменная writer:
write.setText("Ответ:" + result);
нигде не обявленна.

Переменный TF и TF1 не доступны в классе TestActionListener
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
20.04.2017, 13:50
все же не компилируется
и где инициализация write?
0
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 13
20.04.2017, 13:55  [ТС]
Как сделать TF, TF1 и answer видимыми к классе TestActionListener и вывести JLabel
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
57
58
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
class GeometryFrame extends JFrame {
    GeometryFrame() {
        int w=500, h=400;
        setTitle("Геометрия");
        setBounds(400,200,w,h);
        setVisible(true);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        CPanel panel = new CPanel(w,h);
        add(panel);
    }
}
 
class CPanel extends JPanel {
           public CPanel(int W, int H) {
             setLayout(null);
             setBounds(0,0,W,H);
 
            JTextField TF = new JTextField();
            TF.setHorizontalAlignment(JTextField.LEFT);
            TF.setBounds(10,20,100,25);
 
            JTextField TF1 = new JTextField();
            TF1.setHorizontalAlignment(JTextField.LEFT);
            TF1.setBounds(10,60,100,25);
 
            JLabel answer = new JLabel("",1);
 
 
            add(TF); add(TF1); add(answer);
 
           ActionListener actionListener = new TestActionListener();
 
            JButton btn = new JButton("Сложить");
            btn.setBounds(10,100,100,25);
            btn.addActionListener(actionListener);
            add(btn);
         }
}
 
public class TestActionListener implements ActionListener  {
    public void actionPerformed(ActionEvent e) {
        int t, t1, result;
        t = Integer.parseInt(TF.getText());
        t1 = Integer.parseInt(TF1.getText());
        result = t + t1;
        answer.setText("Ответ:" + result);
    }
}
class Geometry{
    public static void main(String[] args) {
        new GeometryFrame();
    }
}
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
20.04.2017, 13:56
Делать класс TestActionListener внутренним и все переменые делать глабальными, а не внутренними.
0
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 13
20.04.2017, 13:59  [ТС]
Пожалуйста напишите как ?
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
20.04.2017, 14:00
Напишите что вам надо в итоге получить, ибо помимо этих проблем, там еще куча других. Условие задание, какое?
0
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 13
20.04.2017, 14:03  [ТС]
Ввод чисел в TextField и TextField 2 и вывести их сумму в JLabel. А также JLabel надо поставить прямо под TextField 2
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
20.04.2017, 14:22
Лучший ответ Сообщение было отмечено timursaet как решение

Решение

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
57
58
59
60
61
62
63
64
65
66
67
68
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
 
public class GeometryRevoked extends JFrame implements ActionListener{
    private static final long serialVersionUID = 1L;
 
    public static void main(String[] args){
        new GeometryRevoked();
    }
 
    private JTextField t1, t2;
    private JLabel result;
    private JButton button;
 
    GeometryRevoked(){
        initFrame();
        initComponents();
        setVisible(true);
    }
 
    private void initComponents(){
        SpringLayout layout = new SpringLayout();
        JPanel panel = new JPanel(layout);
 
        t1 = new JTextField(20);
        t2 = new JTextField(20);
        button = new JButton("Button");
        result = new JLabel("");
 
        layout.putConstraint(SpringLayout.WEST, t1, 5, SpringLayout.WEST, this);
        layout.putConstraint(SpringLayout.WEST, t2, 5, SpringLayout.WEST, this);
        layout.putConstraint(SpringLayout.NORTH, t2, 25, SpringLayout.NORTH, this);
 
        layout.putConstraint(SpringLayout.WEST, result, 5, SpringLayout.WEST, this);
        layout.putConstraint(SpringLayout.NORTH, result, 50, SpringLayout.NORTH, this);
 
        layout.putConstraint(SpringLayout.WEST, button, 5, SpringLayout.WEST, this);
        layout.putConstraint(SpringLayout.NORTH, button, 75, SpringLayout.NORTH, this);
 
        panel.add(t1);
        panel.add(t2);
        panel.add(result);
        panel.add(button);
 
        button.addActionListener(this);
 
        add(panel);
    }
 
    private void initFrame(){
        setSize(300, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setResizable(false);
    }
 
    @Override
    public void actionPerformed(ActionEvent e){
        int value = Integer.parseInt(t1.getText()) + Integer.parseInt(t2.getText());
        result.setText(String.valueOf(value));
    }
}
1
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 13
20.04.2017, 15:37  [ТС]
Я написал свой код, переделав верхний готовый код в свой стиль. У меня почему с позиционированием объектов не получается. мне надо JTextFild ставить друг под другом, Jlabel ниже и button еще ниже. В общем, сверху вниз компоненты.
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
import javax.swing.*;
import java.awt.event.*;
 
class GeometryFrame extends JFrame {
    GeometryFrame() {
        int w=500, h=400;
        setTitle("Геометрия");
        setBounds(400,200,w,h);
        setVisible(true);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        CPanel panel = new CPanel(w,h);
        add(panel);
    }
}
 
class CPanel extends JPanel implements ActionListener {
    private JTextField TF1, TF2;
    private JLabel result;
    private JButton button;
 
        CPanel(int W, int H) {
            TF1 = new JTextField(20);
            TF2 = new JTextField(20);
            button = new JButton("Вычислить");
            result = new JLabel("");
 
            TF1.setBounds(20, 20, 15, 15);
            TF2.setBounds(20,40,15,15);
            result.setBounds(5,40,12,12);
            result.setBounds(5,60,12,12);
 
            add(TF1); add(TF2); add(result);  add(button);
 
            button.addActionListener(this);
        }
    @Override
    public void actionPerformed(ActionEvent e){
        int value = Integer.parseInt(TF1.getText()) + Integer.parseInt(TF2.getText());
        result.setText(String.valueOf(value));
    }
}
 
class Geometry{
    public static void main(String[] args) {
        new GeometryFrame();
    }
}
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
20.04.2017, 15:58
надо внимательней быть:
result.setBounds(5,40,12,12);
result.setBounds(5,60,12,12);

вы одному объекту дважды bounds указываете
0
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 13
20.04.2017, 16:04  [ТС]
Спасибо, а почему еще при запуске проекта то выводится компоненты то нет.
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
20.04.2017, 16:13
ну потому что вы окно делаете видемым перед тем как компоненты в него добавили
Java
1
2
3
4
5
setVisible(true); // окно стало видемым
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        CPanel panel = new CPanel(w,h);
        add(panel);// добавляете панель в него
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2017, 16:13
Помогаю со студенческими работами здесь

Слушатель на кнопку
Здравствуйте! Задача сделать игру запоминалку. В рандомном месте генерируется кнопка на ней число, после определенного время текст...

Слушатель порта
Всем привет. Написал клиент-серверное приложение для передачи файлов от клиента к серверу. Не устраивает то, что сервер активно слушает...

Слушатель порта
Добрый день!!! Задача проста: нужно слушать порт и как только на нем что-то появится - запустить джарник. Код ниже справляется с...

Слушатель на images
Добрый вечер,пишу карточную игру "Ведьма" клиент-сервер и столкнулся с проблемой слушателей. Допустим у меня есть BufferedImage's с...

Слушатель на button
Добрые люди помогите с создание своей собственной кнопки). У меня есть форма на ней canvas которой 60 раз в секунду обрабатывается,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru