Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 4
1

Как передать переменные в другой класс?

21.03.2017, 13:07. Показов 2418. Ответов 7

Author24 — интернет-сервис помощи студентам
Всем привет. Не могу передать переменную в другой класс. Буду благодарна, если вы мне объясните в чем проблема.
Вот у меня есть класс Game, я хочу сюда передать переменные из класса TerrainFileHandler. Пытаюсь передать, но они сюда переходят нулевыми.
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
public class Game extends JPanel {
    
    static JFrame frame = new JFrame();
    static MyPanel drawarea = new MyPanel(640, 480, 20);
    private static final long serialVersionUID = 1L;
//  private static JButton btnConfirm2    = null;
    private static Game panel;
    private static NamedPosition shooter;
    private static NamedPosition target;
    private static NamedPosition hitSpot;
    
    
    public static void makeWindow(){
        panel = new Game(); 
        TerrainFileHandler tfh = panel.new TerrainFileHandler(); // Это моя попытка передать переменную
        int x = (int)(tfh.deltaX * tfh.columns * 0.001) + 20;
        int y =(int)(tfh.deltaY * tfh.rows* 0.001) + 20;
        System.out.println(tfh.deltaY);
        System.out.println("X " + x + ", Y" + y);
        frame.add(panel);
        frame.setTitle("Prototyp 1 / A16B0087P");
        frame.setSize(600, 400);
//      frame.setSize(dX, dY);
        frame.setResizable(false);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null); 
        frame.setVisible(true);
    }
}

Вот второй класс:
мне нужны эти переменные, которые были прочтены с файла.

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
class TerrainFileHandler{
        public int[][] terrain;
        public int columns, rows, deltaX, deltaY, shooterX, shooterY, tX, tY; //Вот эти переменные нужны
        public int[][] Z;
        
        
        public void loadTerFile(String fileName){
            DataInputStream inp;
             try(FileInputStream fin=new FileInputStream(fileName))
                {
                   inp = new DataInputStream(fin);
                   columns = inp.readInt();
                   rows = inp.readInt();
                   deltaX = inp.readInt();
                   deltaY = inp.readInt();
                   shooterX = inp.readInt();
                   shooterY = inp.readInt();
                   tX = inp.readInt();
                   tY = inp.readInt();
                   Z = new int [columns][rows]; 
                   
                   for(int i = 0; i < columns; i++){
                       for(int j = 0; j < rows; j++){
                           Z[i][j]=inp.readInt();
                       }
                   }      
                }   
                catch(IOException ex){      
                    System.out.println(ex.getMessage());
                } 
        }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2017, 13:07
Ответы с готовыми решениями:

Как передать переменные в другой файл?
Добрвй вечер! Подскажите, пожалуйста, как передать значения $name, $email, $phone, $text в файл...

Как передать переменные из одного класса в другой?
Привет всем! Не могу разобраться с вопросом: я создал программу в WinForms, суть ее в том, что есть...

Глобальные переменные в winforms. Как передать массив из одного метода в другой
Собственно нужно создать динамический трехмерный массив: unsigned char ***scr; scr = new...

Как передать массив в другой класс
Не могу понять, я хочу чтобы массив заполнялся в классе Program а выводился в классе Clas методе...

7
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
21.03.2017, 14:49 2
А кто у вас их из файла-то будет считывать?
0
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 4
21.03.2017, 15:13  [ТС] 3
HighPredator, Из файла в этом классе TerrainFileHandler все считывается нормально. Вот:
То есть эти переменные в этом классе нормально работают. Как их начать использовать в другом классе??
Миниатюры
Как передать переменные в другой класс?  
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
21.03.2017, 15:44 4
Цитата Сообщение от pwnsauce Посмотреть сообщение
Из файла в этом классе TerrainFileHandler все считывается нормально
Верю. Но. В вашем классе Game после объявления
Java
1
TerrainFileHandler tfh = panel.new TerrainFileHandler();
нигде нет вызова метода loadTerFile(). А значит, у объекта tfh нужные вам значения не заполнены.
0
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 4
21.03.2017, 20:44  [ТС] 5
HighPredator, а можете показать пример как вызывать метод пожалуйста??
0
33 / 33 / 20
Регистрация: 18.03.2016
Сообщений: 100
21.03.2017, 20:55 6
Например, поставьте между строчками 15 и 16 первого примера (class Game) строчку:
Java
1
tfh.loadTerFile("Путь к файлу")
...А вы сами писали этот код?..
0
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 4
21.03.2017, 21:25  [ТС] 7
Asia4444_, да.
А как быть в такой ситуации, когда я считываю параметр из окна. И из этого метода хочу в другой класс перенести, какой аргумент тут нужен??
Миниатюры
Как передать переменные в другой класс?   Как передать переменные в другой класс?  
0
33 / 33 / 20
Регистрация: 18.03.2016
Сообщений: 100
22.03.2017, 16:04 8
Если вы введёте в качестве аргумента new ActionEvent(), то ошибки не будет. Это подойдёт, если не используются в методе параметры evt. Иначе они будут пустыми.
А вообще-то такие методы должны вызываться, когда происходит событие и именно оно и передаётся в качестве аргумента. (например нажатие кнопки).
1
22.03.2017, 16:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2017, 16:04
Помогаю со студенческими работами здесь

Как передать ссылку по клику в другой класс?
как передать ссылку по клику в другой класс есть класс парсера вот часть кода protected...

Как передать двумерный массив в другой класс
Есть двумерный массив: private bool aUniverse = new bool; private enum UNIVERSE_SIZE {...

Как правильно передать ссылку в другой класс
Добрый день! Есть класс class ViewController: UIViewController, UITableViewDataSource,...

Как считанный из файла массив передать в другой класс?
Дело в том, что если я просто создаю массив и заполняю его, то он у меня передаётся, а если...


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

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