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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача параметров одного класса другому, не отображается в jlable 
:(
    Опции темы
izver84
Дата 19.2.2010, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здрасте.
Вопрос возник.
Есть класс с  2-мя лэйблами и кнопкой.
При нажатии на кнопку высвечивается другой класс с таблицей(состоит из 2 столбцов).
Когда пользователь щелкает на  нужную ему строку,то значения таблицы передаются  первому классу и становится невидимым.
Дальше в первом классе полученные данные отображаются в лэйблах.
вызов второго класса
Код

jButton.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {            
                    Spotr sp = new Spotr();
                    sp.pack();
                    sp.setVisible(true);
                
                }
            });

передача параметров первому классу.
Код

     jTable.addMouseListener(new java.awt.event.MouseAdapter() {
                   public void mouseClicked(java.awt.event.MouseEvent e) {
                       jTable.editCellAt(jTable.getSelectedRow(), jTable.getSelectedColumn());
                       int rowq = jTable.getSelectedRow();                     
                        kpot=DB.getValueAt(rowq,0).toString().trim();
                        npot=DB.getValueAt(rowq,1).toString().trim();                   
                      System.out.println(kpot+" "+npot);
                     ZaiavkaProductii zai =new ZaiavkaProductii();
                     zai.new_kpot2(kpot,npot);
                     setVisible(false);                        
                        try {
                            this.finalize();
                            dispose();
                        } catch (Throwable e1) {
                            // TODO Автоматически созданный блок catch
                            e1.printStackTrace();
                        }
                                 }
                  });

Полученные данные отображаются в лэйблах.
Код

public void new_kpot2(String kpot,String npot)
    {
        System.out.println(kpot+" "+npot);
        jLabel.setText(kpot);
                jLabel1.setText(npot);
    }


System.out.println отображают инфу, т.е. значения первому классу передаются.
Почему jLabel и jLabel1 не отображают данные?
Подскажите пожалуйста.


--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
izver84
Дата 19.2.2010, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Объясню по другому.

Есть класс А, который отображает класс Б. 
В классе Б определяем значения, которые передаем классу А (передаются).
Эти значения, в классе А, отображаются в лэйблах (не работает).




--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
jk1
Дата 19.2.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Проблема не в приведенном коде. Вот пример, работающий как надо, совпадающщий по логике работы с приведенным кодом:
Код

// Класс А из вашего примера
public class FrameTest extends JFrame {

    JLabel label = new JLabel("Boo");

    public static void main(String[] args) {
        new FrameTest();
    }

    public FrameTest() {
        JPanel panel = new JPanel(new FlowLayout());
        panel.add(new JButton(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new OtherFrame(FrameTest.this);
            }
        }));
        panel.add(label);
        this.setContentPane(panel);
        this.pack();
        this.setVisible(true);
    }

    public void setLabelText(String txt) {
        label.setText(txt);
    }
}

//Класс В из вашего примера
class OtherFrame extends JDialog {
    JTable table = new JTable
            (new String[][]{{"1", "2"}, {"3", "4"}}, new String[]{"col1", "col2"});

    OtherFrame(final FrameTest frame) {
        super(frame);
        table.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                int row = table.getSelectedRow();
                frame.setLabelText(table.getValueAt(row, 0) + " " + table.getValueAt(row, 1));
                OtherFrame.this.setVisible(false);
            }
        });
        this.getContentPane().add(new JScrollPane(table));
        this.setSize(new Dimension(200, 200));
        this.setVisible(true);
    }
}

Так что либо выкладывайте классы целиком, либо ищите в чем отличия самостоятельно.


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

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

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


 




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


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

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