С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 24
1

Передать число из одного класса в другой

21.02.2014, 21:35. Показов 1964. Ответов 4
Метки нет (Все метки)

Решил проверить, получится ли написать вычислялку по формуле. Вроде все сделал, но не могу передать число из одного класса в другой. Как можно это провернуть в данном случае?

Gui.java
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
69
70
71
72
73
74
75
import java.awt.*;
 
import javax.swing.*;
 
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
 
import javax.swing.JButton;
    
    public class GUI extends JFrame 
    {
        Logic logic = new Logic();
        
        public GUI() {
        JFrame frame = new JFrame("Вычесление ");
        // Имя, настройки
        setResizable(false); // Запрещаем менять размер окна пользователю
        setDefaultCloseOperation(EXIT_ON_CLOSE); // Завершаем программу после выхода из окна
        frame.setSize(300,300);
        
        //Кнопки, детали
        JButton doIt = new JButton("                  Расчитать                  ");
        final JTextField get = new JTextField("2", 10);
        JTextField get2 = new JTextField("2", 10);
                
        // Панели, рамки, всякое
        final JPanel panel = new JPanel();    
        panel.setBorder(BorderFactory.createTitledBorder("Расчет площади круга"));
        frame.getContentPane().add(panel);
        panel.add(get);
        panel.add(new JTextArea("."));
        panel.add(get2);
        frame.setVisible(true);
        panel.add(doIt);
        
        String buf = get.getText() + "." + get2.getText();
        
        double go = Double.parseDouble(buf);
        
        System.out.println("Значние на вывод: " + go);
        
        doIt.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                logic.areaCircle();
            }
       });
        
        // Слудим за отсуствием букв в полях
        get.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
              char a = e.getKeyChar();
              if (!Character.isDigit(a)
                  && (a != '.')
                  && (a != '\b')) {
                e.consume();
              }
            }
          });
        get2.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
              char a = e.getKeyChar();
              if (!Character.isDigit(a)
                  && (a != '.')
                  && (a != '\b')) {
                e.consume();
              }
            }
          });
      }
    }
Logic.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import javax.swing.JFrame;
import javax.swing.JTextArea;
 
class Logic extends JFrame {
    
    double s;
    public void areaCircle()
      {
          double go = 1; // Нужно каким-то образом получить это знаение
          s = 3.14 * go;
            System.out.println("Пришло: " + go);
          String itog = "Вывод: " + s;
          JFrame rez = new JFrame("Результат");
          rez.setVisible(true);
          rez.setSize(150,150);
          JTextArea yey = new JTextArea(itog);
          
          rez.add(yey);
      }
}
Main.java
Java
1
2
3
4
5
public class Main {
      public static void main(String[] args) {
            new GUI(); // создаем окно
      } 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2014, 21:35
Ответы с готовыми решениями:

Как передать переменную из одного класса в другой
Есть окружность, а по ней в свою очередь движется точка. Часть кода: import javax.swing.*; ...

Как можно передать значения переменных из одного класса в другой?
1) Не могу понять, почему в Borland JBuilder создавая два Фрейма в разных классах при запуске я...

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

Передача массива из одного класса в другой
Есть 2 файла классов и в одном объявляется массив n элементов. Как его передать во второй класс?...

4
46 / 36 / 15
Регистрация: 05.02.2014
Сообщений: 140
21.02.2014, 23:01 2
сделать так чтобы метод принимал параметр
Java
1
public void areaCircle(double go)
и отправлять его в слушателе
doIt.addActionListener
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 24
21.02.2014, 23:10  [ТС] 3
Пытался, в таком случае придется делать
Java
1
static double go = Double.parseDouble(buf);
А из-за такого подхода значение с текстовых полей сниматься не будет.
Эклипс говорит следующие:
Cannot refer to a non-final variable go inside an inner class defined in a different method
0
46 / 36 / 15
Регистрация: 05.02.2014
Сообщений: 140
21.02.2014, 23:12 4
Java
1
2
3
4
5
6
7
8
doIt.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String buf = get.getText() + "." + get2.getText();
                double go = Double.parseDouble(buf);
                System.out.println("Значние на вывод: " + go);
                logic.areaCircle(go);
            }
        });
Java
1
public void areaCircle(double go)
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 24
21.02.2014, 23:21  [ТС] 5
В предыдущем сообщении опечатка:
Java
1
final double go = Double.parseDouble(buf);
RomanovD, спасибо. Все заработало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2014, 23:21

Передать данные одного обьекта класса в другой обьект на другой форме
Здравствуйте прочитал вот это https://www.cyberforum.ru/windows-forms/thread110436.html но так и...

Как передать входящее значение одного метода класса на возврат в другой метод того же класса?
Я самый новейший новичок. Помогите.Как передать входящее значение (количество еды) метода feed...

Передать значение из одного класса в другой
есть 2 класса public partial class MainPage : UserControl { void runer() ...

Передать настройки из одного класса в другой
Существуют два класса: 1) class Animacija 2) class Tip_animacii. Как сделать выбор настроек для...


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

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

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