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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> управление одним окном из другого 
V
    Опции темы
6y6y9Hr
Дата 10.12.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте

есть код

первое окно:

Код


public class MainFrame extends javax.swing.JFrame {

    public MainFrame() {
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame(this).setVisible(true);
            }
        });
    }

    public void showHello(){
        if(this.jTextField1.isFocusOwner() == true){
            this.jTextField1.setText("Hello");
            this.jTextField2.requestFocus();
        }
        else
            if(this.jTextField2.isFocusOwner() == true){
                this.jTextField2.setText("Hello");
                this.jTextField1.requestFocus();
            }
    }

    private javax.swing.JButton jButton1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
}


второе окно:
Код

public class NewJFrame extends javax.swing.JFrame {

    public NewJFrame(MainFrame MF) {
        this.MF = MF;
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        MF.showHello();
    }

    private javax.swing.JButton jButton1;

    MainFrame MF;
}


Вобщем по нажатию кнопки во втором окне в первом в jTextField1 должно вывестись сообщение Hello и передать фокус в jTextField2. Только вот проблема в 

new NewJFrame(this).setVisible(true)   

this определяется как ошибка 

cannot find symbol 
symbol: constructor NewJFrame(<anonymous java.lang.Runnable>)

Что я делаю не так ??
PM MAIL   Вверх
comcon1
Дата 11.12.2008, 04:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



Скажи мне, нафига тебе поток при клике по кнопке, а?
просто без всяких runnable-ов делай:
Код

new NewJFrame(this).setVisible(true);


Ну если ты оооочень хочешь поток, то так:
Код

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        final MainFrame tmpvar = this;
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame(tmpvar).setVisible(true);
            }
        });
    }



--------------------
PM MAIL   Вверх
6y6y9Hr
Дата 11.12.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо все работает  smile 

Цитата

Скажи мне, нафига тебе поток при клике по кнопке, а?


В java пока полный нуб... программу делаю в NetBeans который по умолчанию так открывает окно... теперь буду знать  smile 
PM MAIL   Вверх
math64
Дата 12.12.2008, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

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



Код

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame(MainFrame.this).setVisible(true);
            }
        });
    }

Иногда invokeLater /"вызови позже"/ нужен - поэтому NetBeans его вставляет. При этом новый поток не создается, а создание нового окна откладывается на некоторое время (если у кнопки назначено несколько ActionListener'ов, то новое окно создатся после того, как они все отработают)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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