С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 10

Использование переменной из другого класса

08.10.2016, 15:42. Показов 1187. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как при нажатии на кнопку использовать переменную из другого класса?
Есть код проекта, схематично имеющий такую структуру:
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
package testproject;
 
import javax.swing.JFrame;
import javax.swing.SwingWorker;
 
public class NewClass extends javax.swing.JFrame {
    
    public static JFrame jfr;
    public static Object[][] DannieTablic;
    public static Task task;
     
    public NewClass(){
        jtask();
    }
     
    public static void jtask(){
        task = new Task();
        task.execute();
        System.out.println("jtask()");
    }
    
    static class Task extends SwingWorker < Void, Void > {
        
        public Void doInBackground() {
            
            if (true){ 
                
                DannieTablic[0][0] = 17; //не уверен, что присваивает
                System.out.println(DannieTablic[0][0]);// не выводит
                System.out.println("In doInBackground()");// не выводит
                //в таком виде все присваивается нормально, но это как бы другая переменная получается
                Object[][] DannieTablic = {{"1337","10","3","4","5"},
                                {"2","23","3","44","5"},
                                {"3","2","35","4","5"},
                                {"4","2","3","42","5"},
                                {"5","26","31","4","5"}
                                                      };  
                
            }
            return null;
        }
   }
}
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
76
77
78
79
80
81
82
83
package testproject;
 
public class NewJFrame extends javax.swing.JFrame {
 
    public NewJFrame() {
        initComponents();
    }
 
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
 
        jButton1 = new javax.swing.JButton();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(190, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(137, 137, 137))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(105, 105, 105)
                .addComponent(jButton1)
                .addContainerGap(172, Short.MAX_VALUE))
        );
 
        pack();
    }// </editor-fold>                        
 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Object[][] data = null;
        data[0][0] = NewClass.DannieTablic[0][0];
        System.out.println(NewClass.DannieTablic[0][0]+ " data in NewJframe");// не выводит
        System.out.println(data[0][0]+ " dannietablic from GetData");// не выводит
    }                                        
 
    public static void main(String args[]) {
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see [url]http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html[/url] 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
 
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
            }
        });
    }
 
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    // End of variables declaration                   
}
Java
1
2
3
4
5
6
7
8
9
10
package testproject;
 
public class TestProject {
 
    public static void main(String[] args) {
        NewClass.jfr = new NewClass();
        new NewJFrame().setVisible(true);
    }
    
}
конструкция public static вроде бы верная. Но присваивание не происходит и в следствии чего при нажатии на кнопку на Jframe выдает nullException. Как нужно сделать правильно, чтобы все работало? Нужно, чтобы именно данные задавались внутри public Void doInBackground() в переменную типа Object[][].
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.10.2016, 15:42
Ответы с готовыми решениями:

Вызов переменной из другого класса
Всем привет, я захотел сделать элементарный кукулятор, и я джавой занимаюсь около недели, так вот подскажите пожалуйста!Как вызвать...

Взятие переменной из другого класса
Возникла небольшая проблемка У меня в 1 классе в переменную заносятся какое-то значение и я хочу его перекинуть в другой класс и вывести...

Использование класса из другого проекта
Есть 2 проекта Client и Server. Оба использует общие классы Message и IP. Запускала в консоле, там все просто, прописала пути к .java...

1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
08.10.2016, 18:09
Цитата Сообщение от ZInk Посмотреть сообщение
DannieTablic[0][0] = 17; //не уверен, что присваивает
правильно не уверен, ибо чтобы присвоить нужно создать массив, у тебя его еще нет. Не забыл что создание объектов в джава делается через new? То бишь DannieTablic = new [5][5] Object;
Цитата Сообщение от ZInk Посмотреть сообщение
//в таком виде все присваивается нормально, но это как бы другая переменная получается
все верно, переменная созданная внутри блока относится только к блоку, не забыл про область видимости?

в конструкторе класса просто создай объект твоего массива (new) и можешь присваивать и делать что хочешь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2016, 18:09
Помогаю со студенческими работами здесь

Использование класса из другого модуля
В общем проблема такая . Хочу конект сделать к БД . Создал для этого &quot;логин модуль&quot; в другом проекте , так как думаю что он мне потом...

Получить значение переменной из другого класса
Добрый день! Делаю простенькие часики и столкнулся со следующей проблемой: внутри класса значение переменной есть, а если я вызываю эту...

Как обратиться к переменной другого класса
Здравствуйте! Подскажите пожалуйста: как обратиться к переменной из одного класса находясь в другом? Вот пример: Имеем класс Cat: ...

Как обратиться к переменной из другого класса?
Как получить значение spinnerOfHeight package net.net78.zarsite; import java.awt.event.ActionEvent; import...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru