Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возврашение переменной методом 
:(
    Опции темы
kren
  Дата 13.10.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Вечер добрый.

Вот какая у меня проблема: имею я две таблицы (table1, table2). Дело происходит в SWT, но не в етом проблема. Ети таблицы прослшиваются и обе пользуются одним и тем же методом. Так вот, етот метод возврашяет какую-то переменную. Проблема в том, что пока я слушаю первую таблицу, возврашяется одна перременная, а когда вторую, то другая. Мне же надо, что бы, пока я пользуюсь второй таблицей, переменная возврашення первой таблицей непереписывалась второй. 

Ну надеюсь понятно обьяснил.

Спасиба за ответы.

PM MAIL   Вверх
LSD
Дата 13.10.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(kren @  13.10.2006,  20:36 Найти цитируемый пост)
Ну надеюсь понятно обьяснил.

Нет, не понятно. Почетче объясни как оно работает. Кто вызывает метод этого слушателя? Он работает с таблицами в своем потоке или в потоке вызвавшей его таблицы? И вообще в каком потоке работают компоненты SWT?

По возможности желательно код увидеть.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
kren
Дата 13.10.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Вот код, здесь осуществляется перемещение по папкам в файловой системе. И надо что бы каждая таблица сохроняла значение, пока експлуатируется другая таблица.
Надеюсь теперь будет понятнее.

Код


public class Graph {

// тут переменные
    
    Graph() {
        
        Display display = new Display();
        shell = new Shell(display);
        GridLayout gl = new GridLayout();
        gl.numColumns = 8;
        shell.setLayout(gl);
        
        /*************************/
        
        File t1_now_dir = new File(System.getProperty("user.dir"));
        t1_curDir = t1_now_dir;   // сюда по идее должна возвратиться переменная в  t1_curDir
        
        /*************************/
        
        table1 = new Table(shell, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
        tc11 = new TableColumn(table1, SWT.LEFT);
        tc12 = new TableColumn(table1, SWT.LEFT);

        tc11.setText("Name");
        tc12.setText("Type");
        
        tc11.setWidth(200);
        tc12.setWidth(50);
       
        table1.setLinesVisible(true);
        table1.setHeaderVisible(true);
        
        listDirectory(t1_now_dir, table1);
        
        table1.addListener(SWT.PUSH, new Listener() {

            public void handleEvent(final Event event) {
                
                    downDirectory(t1_curDir, table1);
            }
            
        });
        
        gd = new GridData(GridData.FILL_BOTH);
        gd.horizontalSpan = 4;
        gd.heightHint = 600;
        table1.setLayoutData(gd);
        
        
        /*************************/
        
        File t2_now_dir = new File(System.getProperty("user.dir"));
        t2_curDir = t2_now_dir;   // сюда по идее должна возвратиться переменная в t2_curDir
        
        /*************************/
        
        table2 = new Table(shell, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
        tc21 = new TableColumn(table2, SWT.LEFT);
        tc22 = new TableColumn(table2, SWT.LEFT);
        
        tc21.setText("Name");
        tc22.setText("Type");
        
        tc21.setWidth(200);
        tc22.setWidth(50);
        
        table2.setLinesVisible(true);
        table2.setHeaderVisible(true);
        
        listDirectory(t2_now_dir, table2);
        
        table2.addListener(SWT.PUSH, new Listener() {
            public void handleEvent(final Event event) {
                
                    downDirectory(t2_curDir, table2);
            }
        });
        
        gd = new GridData(GridData.FILL_BOTH);
        gd.horizontalSpan = 4;
        gd.heightHint = 600;
        table2.setLayoutData(gd);
        
        /***********************/
        
        shell.pack();
        shell.open();
        while(!shell.isDisposed()) {
            if(!display.readAndDispatch()) 
                  display.sleep();
        }
        shell.dispose();
    }
    
    protected void downDirectory(File curDir, Table table) {

        final int i = table.getSelectionIndex();

        TableItem curFile = table.getItem(i);
        String sCurFile = curFile.toString();

        int iNameLen = sCurFile.length();
        sCurFile = sCurFile.substring(11, iNameLen);
        sCurFile = sCurFile.replace("}", "");

        File fCurFile = new File(curDir, sCurFile);

        if (fCurFile.isDirectory()) {

            listDirectory(fCurFile, table);
    
        }
    }
    
    protected File listDirectory(File now_dir, Table table) {
        table.removeAll();
        TableItem item = new TableItem(table, SWT.NONE);
        item.setText("..");
        
        if (now_dir.isDirectory()) {
            File[] gg = now_dir.listFiles();
            for (int d = 0; d < gg.length; d++) {
                
                fileName = gg[d].getName();
                
                if (gg[d].isDirectory()) {
                    
                    item1 = new TableItem(table, SWT.NONE);
                    item1.setText(new String[] { fileName, "Folder"});
                    
                } else if (gg[d].isFile()) {
                    
                    item1 = new TableItem(table, SWT.NONE);
                    item1.setText(new String[] { fileName, "File"});
                }
            }
        }
        t1_curDir = now_dir;  // для первой таблицы
        t2_curDir = now_dir;  // для второй
        
        return t1_curDir; // а вот собственно отсюда нузно получить то, что я пытался описать в предыдущем посте. В настоящем варианте коректно работает только первая таблица

    }
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.